女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用NVIDIA cuFFTMp FFT解決具有挑戰性的問題

星星科技指導員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-04-13 09:04 ? 次閱讀

NVIDIA 宣布發布 Early Access ( EA )的 cuFFTMp 。 cuFFTMp 是 cuFFT 的多節點、多進程擴展,使科學家和工程師能夠在 exascale 平臺上解決具有挑戰性的問題。

FFTs ( Fast Fourier Transforms )廣泛應用于分子動力學、信號處理、計算流體力學( CFD )、無線多媒體和機器學習等領域。有了 cuFFTMp , NVIDIA 現在不僅支持單個系統中的多個 GPU ,還支持跨多個節點的多個 GPU 。

圖 1 顯示, cuFFTMp 達到 1.8 PFlop / s 以上,超過該規模轉換峰值機器帶寬的 70% 。

poYBAGJWIe-AP3VhAAG5CUtpEiQ912.png

圖 1 。 Selene cluster 上的 cuFFTMp (弱伸縮)性能

在圖 2 中,問題大小保持不變,但 GPU 的數量從 8 增加到 2048 ??梢钥吹?, cuFFTMp 成功地擴展了問題,將單精度時間從 8 GPU ( 1 個節點)的 78ms 提高到 2048 GPU ( 256 個節點)的 4ms 。

poYBAGJWIf-ASC_CAAFeEUM0mnM670.png

圖 2 。 Selene cluster 上的 cuFFTMp (強伸縮)性能

圖 1 和圖 2 在 Selene 集群上運行。 Selene 由 NVIDIA DGXA100 和 NVSwitch ( 300 GB / s / GPU ,雙向)以及 Mellanox Infiniband HDR ( 200 GB / s / node ,雙向)組成,每個節點 8xA100-80GB 。使用 nvcr 提供的 CUDA 11.4 和 NVIDIA HPC SDK 21.9 Docker 容器 進行測試。 io / NVIDIA / nvhpc:21.9-runtime-cuda11 。 4-ubuntu20 。 04.GPU 應用程序時鐘設置為最大值。

性能和可擴展性

由于MPI_Alltoallv類型的全局集體通信,分布式 3D FFT 以通信受限而聞名。MPI_Alltoallv是分布式 FFT 的主要瓶頸,因為與高計算能力相比,節點間帶寬較低,而且all_to_all類型通信的加速器感知 MPI 實現在質量上各不相同。

cuFFTMp 使用 NVSHMEM ,這是一個基于 OpenSHMEM 標準的新通信庫,通過提供內核啟動的通信,為 NVIDIA GPU 設計。 NVSHMEM 創建一個全局地址空間,其中包含集群中所有 GPU 的內存。從 CUDA 內核內部執行通信可以實現細粒度遠程數據訪問,從而降低同步成本,并利用 GPU 中的大規模并行性來隱藏通信開銷。

通過使用 NVSHMEM , cuFFTMp 獨立于 MPI 實現的質量,這是至關重要的,因為不同 MPI 的性能可能會有很大差異。有關更多信息,請參閱 關于高性能系統 FFT 庫基準測試的中期報告。第三章 。

圖 3 顯示,隨著 GPU 的數量增加一倍, cuFFTMp 能夠保持大約 75% 的峰值。

poYBAGJWIhuAbGVaAAF3hRm-CRA788.png

圖 3 。硒原子團上 cuFFTMp 的弱標度,顯示為峰值性能的一小部分

峰值性能是使用 2000 GB / s / GPU 的雙向全局內存帶寬, 300 GB / s / GPU 的雙向 NVLink 帶寬和 25 GB / s / GPU 的 Infiniband 帶寬。

設 N 為 1D 變換大小, G 為 GPU 的個數。每個 GPU 都擁有 N 3/ G 元素(每個元素 8 或 16 字節),模型假設 N 3/ G 元素在全局內存中被讀/寫六次,并且 N 3 G 2元素從每個 GPU 發送一次到其他 GPU 。在 4096 GPU 上,非 InfiniBand 通信所花費的時間不到總時間的 10% 。

MPI 可移植性和多體系結構支持

如前所述, cuFFTMp 的性能不依賴于 MPI 實現。為了便于攜帶, cuFFTMp 要求啟動 MPI ,并管理 CPU 上的數據分發。

目前, TMP 靜態鏈接到 NVSHMEM 。 NVSHMEM 使用一個小型 MPI “引導插件”( NVSHMEM _ bootstrap _ MPI.so ),它是使用 MPI 構建的,并在運行時自動加載。此引導程序針對 HPC SDK 中包含的 OpenMPI 版本。對于依賴于另一個 MPI 實現的用戶應用程序, EA 包包括幫助程序腳本,用于構建針對不同 MPI 的引導程序。

cuFFTMp 同時支持 Linux x86 _ 64 和 IBM POWER 體系結構。您可以下載不同體系結構的 EA 包。圖 4 顯示,在 256 個節點中使用 1536V100 GPU , cuFFTMp 可以達到 50Tflop / s 以上,轉換 40963復雜的數據點,僅占 Summit 系統的 5% 。

pYYBAGJWIiKAR_AZAAD-yiqudas363.png

圖 4 。 cuFFTMp ( FP32 )在 Summit cluster 上的性能

圖 5 顯示,在 256 個節點中使用 1536V100 GPU 時, cuFFTMp 可以達到 4096 個以上的 TFlop / s3復雜的數據點,僅占 Summit 系統的 5% 。

pYYBAGJWIjqAeUziAAEAmSFST9Y106.png

圖 5 。 cuFFTMp ( FP64 )在 Summit cluster 上的性能

輕松過渡到 TMP

cuFFTMp 只是當前多 GPU cuFFT 庫的擴展。大多數現有的多 GPU 函數適用于 TMP 。作為一個分布式多進程庫, cuFFTMp 要求 MPI 被引導(“啟動”),并期望數據分布在 MPI 進程之間。下表顯示了將應用程序從使用 multi- GPU cuFFT 轉換為 cuFFTMp 所需的代碼。

Multi-GPU, single-process cuFFT cuFFTMp

#include

#include
#include

MPI_Init(&argc, &argv);
int rank, size;
MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); cudaSetDevice(my_device);


size_t my_NX = (NX / size) + (rank < NX %
size ?1:0);

// host buffer h_f size NX*NY*NZ // host buffer h_f size my_NX*NY*NZ
cufftHandle plan_c2c;
cufftCreate(&plan_c2c);

for (auto i =0; i < NGPUS; ++i)
whichGPUs[i] = i;
cufftXtSetGPUs(plan_c2c, NGPUS,
whichGPUs)


cufftMpAttachComm(plan, CUFFT_COMM_MPI, MPI_COMM_WORLD)

size_t worksize;
cufftMakePlan3d(plan_c2c, NX, NY, NZ, CUFFT_R2C, &worksize);

cudaLibXtDesc *d_f;
cufftXtMalloc(plan_c2c, &d_f, CUFFT_XT_FORMAT_INPLACE);

cufftXtMemcpy(plan_c2c, d_f, h_f, CUFFT_COPY_HOST_TO_DEVICE);

cufftXtExecDescriptor(plan_c2c, d_f, d_f, CUFFT_FORWARD)
// Any user-defined operations (filtering, …)
cufftXtExecDescriptor(plan_c2c, d_f, d_f, CUFFT_INVERSE)

cufftXtMemcpy(plan_c2c, h_f, d_f, CUFFT_COPY_DEVICE_TO_HOST);
cufftXtFree(d_f)

MPI_Finalize();

Slab 、 pencil 和 block 分解是多維 FFT 算法中用于跨節點并行計算的數據分布方法的典型名稱。 cuFFTMp EA 僅支持優化的 slab ( 1D )分解,并提供輔助功能,例如 cufftXtSetDistribution 和 cufftMpReshape ,以幫助用戶從任何其他數據分發重新分發到 cuFFTMp 的 slab 數據分發。

CufftMP EA 包包括 C ++和 Fortran 示例,覆蓋了一系列用例: C2C 、 R2C / C2R 、不同的計劃共享工作空間,以及從一個分布到另一個分布的數據或在 GPU 上重新分布。 cuFFTMp 使用 EA 包中包含的 HPC SDK 21.7 +編譯器和包裝器,為 Fortran 應用程序提供全面支持。

客戶體驗:湍流模擬

cuFFTMp 使科學家能夠研究具有挑戰性的流體湍流問題 物理學中最古老的懸而未決的問題 。

為了了解湍流行為,印度海得拉巴塔塔基礎研究所( TFRI )的一個研究團隊開發了 Fluid3D ,這是一個 CFD 軟件包,使用偽譜方法對 Navier-Stokes 方程進行直接數值模擬( DNS )。通過將 Fluid3D 移植到 cuFFTMp 和 CUDA ,該團隊現在可以在幾個小時內模擬數千個 GPU 上更高的雷諾數流動,這是使用 MPI CPU 版本不可能完成的任務。

在圖 6 中,湍流由不同尺度的漩渦組成,能量從大尺度的運動轉移到小尺度。模擬和理解大型 DNS 運行中最小湍流結構的各向同性行為非常重要。

DNS 是提高對湍流理解的關鍵工具,偽譜方法因其計算效率和準確性而被廣泛使用。

湍流模擬的挑戰是需要獲得高雷諾數( Re )。為了保持計算穩定性, Re 數受到網格分辨率的限制,即 Re 2.25 N 3,其中 N 是每個維度中的網格點數量。因此,模擬高 Re 數湍流需要數值分辨率,計算成本可能會很高,甚至會讓人望而卻步。

表 1 顯示了最大 Re 數所需的網格分辨率以及模擬所需的內存。

Fluid3D 在傅里葉空間中使用二階指數時間步進法。模擬通常集成在數萬個時間步上,每個時間步計算九個 3D FFT 。 FFT 主導整個仿真運行時。每個時間步長的壁面時間是衡量數值實驗特定結構的求解時間是否合理的一個重要指標。

圖 7 顯示了 Fluid3D 的每個時間步的壁時間小于 5 秒,分辨率為 81923,在 Selene 上使用 1024 個 A100 GPU ( 128 個節點)。帶有 FFTW-MPI 的 CPU 版本,每次迭代需要 23.9 秒,分辨率為 10243在單個 64 核 CPU 節點上使用 64 MPI 列組的問題大小。與同樣 1024 小時的墻時間相比3問題大小使用兩個 A100 GPU ,很明顯 Fluid3D 從 CPU 節點到單個 A100 的加速比超過 20 倍。

圖 7 。在 Selene 上運行的 Fluid3D DNS 的每個時間步長的墻時間

開始使用 cuFFTMp

有興趣嘗試使用 cuFFTMp 將應用程序轉換為在多個節點上運行嗎?請轉到 cuFFTMp EA 的入門頁面。下載 cuFFTMp 后,玩一下示例代碼,看看它們與 multi- GPU 版本有多相似,以及它們如何在多個節點上擴展。

關于作者

Leopold Cambier 于 2021 在斯坦福大學獲得了計算和數學工程博士學位。在博士期間,他專注于從理論和并行計算的角度研究大型稀疏線性系統的快速求解器。 2016 年和 2017 年,他還在NVIDIA cuDNN 團隊實習。自從他在 2021 年 1 月加入全職以來,利奧波德一直在cuFFT。

Doris Pan 是 cuFFT 團隊的軟件工程師,之前是 NVIDIA 的解決方案架構師。她的熱情在于幫助和教育世界各地的客戶加速他們的 HPC 和 DL / ML 應用程序。在加入 NVIDIA 之前,她曾在 NOAA 、 NASA 和斯倫貝謝擔任 HPC 軟件工程師和技術經理。多麗絲擁有北卡羅來納大學教堂山分校環境科學與工程博士學位。

Lukasz Ligowski 是負責cuFFT和設備擴展庫的工程經理。他于 2012 加入NVIDIA HPC 數學圖書館團隊。最初,他花了大部分時間開發 cuFFT 庫,只做了一小段 cuDNN / DL 工作。他從華沙大學超級計算中心( ICM )轉入 Nvidia 。他推動了 CUDA 的早期采用,并使用其他奇特的硬件體系結構來加速科學應用。他熱衷于從硬件中提取最后一點計算性能。在空閑時間,他喜歡喝咖啡和獨角獸。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11049

    瀏覽量

    216163
  • gpu
    gpu
    +關注

    關注

    28

    文章

    4916

    瀏覽量

    130744
  • 應用程序
    +關注

    關注

    38

    文章

    3322

    瀏覽量

    58784
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    借助NVIDIA技術實現機器人裝配和接觸密集型操作

    本期 NVIDIA 機器人研究與開發摘要 (R2D2) 將探討 NVIDIA 研究中心針對機器人裝配任務的多種接觸密集型操作工作流,以及它們如何解決傳統固定自動化在魯棒、適應和可擴
    的頭像 發表于 06-04 13:51 ?135次閱讀
    借助<b class='flag-5'>NVIDIA</b>技術實現機器人裝配和接觸密集型操作

    NVIDIA實現神經網絡渲染技術的突破增強功能

    近日,NVIDIA 宣布了 NVIDIA RTX 神經網絡渲染技術的突破增強功能。NVIDIA 與微軟合作,將在 4 月的 Microsoft DirectX 預覽版中增加神經網絡著
    的頭像 發表于 04-07 11:33 ?364次閱讀

    NVIDIA助力解決量子計算領域重大挑戰

    NVIDIA 加速量子研究中心提供了強大的工具,助力解決量子計算領域的重大挑戰。
    的頭像 發表于 03-27 09:17 ?499次閱讀

    傅利葉借助NVIDIA Isaac Gym開發人形機器人GR-2

    訓練人形機器人在需要高度交互與適應的領域作業,比如科學研究、醫療保健和制造業等,非常具挑戰性且資源消耗很大。
    的頭像 發表于 02-20 09:27 ?635次閱讀

    物理仿真人形機器人的統一全身控制策略

    創建動作自然并對各種控制輸入做出智能響應的交互式仿真人形機器人仍是計算機動畫和機器人技術領域最具挑戰性的問題之一。NVIDIA Isaac Sim等高性能 GPU 加速仿真器以及使用NVIDIA Isaac Lab的機器人策略訓
    的頭像 發表于 01-06 12:31 ?823次閱讀
    物理仿真人形機器人的統一全身控制策略

    全新NVIDIA NIM微服務實現突破進展

    全新 NVIDIA NIM 微服務實現突破進展,可助力氣象技術公司開發和部署 AI 模型,實現對降雪、結冰和冰雹的預測。
    的頭像 發表于 11-21 10:07 ?616次閱讀

    從零到一:搭建屬于自己的海外IP代理池

    從零到一搭建屬于自己的海外IP代理池是一個復雜但具有挑戰性的任務,它涉及多個步驟和考慮因素。
    的頭像 發表于 11-15 08:15 ?1051次閱讀

    Vivado中FFT IP核的使用教程

    本文介紹了Vidado中FFT IP核的使用,具體內容為:調用IP核>>配置界面介紹>>IP核端口介紹>>MATLAB生成測試數據>>測試verilogHDL>>TestBench仿真>>結果驗證>>FFT運算。
    的頭像 發表于 11-06 09:51 ?3522次閱讀
    Vivado中<b class='flag-5'>FFT</b> IP核的使用教程

    2024年ICPC與華為挑戰賽冠軍杯圓滿落幕

    近日,2024年ICPC&華為挑戰賽冠軍杯在深圳圓滿落幕。該活動由華為和ICPC聯合舉辦,匯聚全球頂尖的編程人才,共同探討和解決具有挑戰性的工業界真實問題,并對未來技術發展趨勢及關鍵挑戰
    的頭像 發表于 10-27 16:00 ?1304次閱讀

    NVIDIA為AI城市挑戰賽構建合成數據集

    在一年一度的 AI 城市挑戰賽中,來自世界各地的數百支參賽隊伍在 NVIDIA Omniverse 生成的基于物理學的數據集上測試了他們的 AI 模型。
    的頭像 發表于 09-09 10:04 ?821次閱讀

    康謀分享 | 在基于場景的AD/ADAS驗證過程中,識別挑戰性場景!

    基于場景的驗證是AD/ADAS系統開發過程中的重要步驟,然而面對海量駕駛記錄數據時,如何實現自動且高效地識別、分類和提取駕駛記錄中的挑戰性場景?本文康謀為您介紹IVEX軟件識別挑戰性場景并進行數據分析的強大功能。
    的頭像 發表于 08-28 10:16 ?1370次閱讀
    康謀分享 | 在基于場景的AD/ADAS驗證過程中,識別<b class='flag-5'>挑戰性</b>場景!

    NVIDIA Isaac Lab助力銀河通用打造靈巧手抓取技能模型

    在本案例中,銀河通用的團隊借助Isaac Lab搭建了具有挑戰性的靈巧抓握基準 DexGraspNet,這是一個最近提出的基準套件,專門用于學習可泛化的靈巧抓握。DexGraspNet 包含
    的頭像 發表于 08-23 15:38 ?1433次閱讀

    FPGA設計面臨的挑戰和解決方案

    設計可靠的可編程邏輯門陣列(FPGA)對于不容故障的系統來說是一項具有挑戰性的任務。本文介紹FPGA設計的復雜,重點關注如何在提高可靠的同時管理隨之帶來的功耗增加、設計復雜
    的頭像 發表于 08-06 11:33 ?891次閱讀

    請問如何定位SMU中alarm的報警源?

    對于開發人員來說,SMU 檢測到 Alarm 后,如何發現和定位導致 alarm 的原因和位置才是最具有挑戰性的。以看門狗超時為例,在出現看門狗復位后,我有以下問題希望得到解答: 1. 1.通過那些
    發表于 08-01 06:18

    人臉識別技術的可行在于矛盾具有什么

    人臉識別技術的可行在于矛盾具有普遍。 一、引言 人臉識別技術作為人工智能領域的一項重要技術,近年來得到了廣泛的關注和應用。然而,隨著技術的發展,人臉識別技術也面臨著越來越多的挑戰
    的頭像 發表于 07-04 09:28 ?921次閱讀