在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

利用NVIDIA平臺并行編程語言加速計算方法

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

NVIDIA 平臺是最成熟、最完整的加速計算平臺。在這篇文章中,我將介紹最簡單、最高效、最可移植的加速計算方法。有三種編程方法 GPU (圖 1 )。

圖 1 。NVIDIA 平臺編程的三種方法

CUDA C ++ Fortran 是 NVIDIA 可以展示新硬件和軟件創新的創新平臺,在這里,您可以調整應用程序以在 NVIDIA GPU 上實現最佳性能。許多開發人員認為這就是 NVIDIA 希望每個人為 GPU 編程的方式。

相反,我們預計,開發者首次來到NVIDIA平臺將使用標準的并行編程語言,如 ISO C ++、 ISO Fortran 和 Python 。在這篇文章中,我強調了使用這種方法進行并行編程的一些成功,以證明進入NVIDIA CUDA 生態系統的最有成效的途徑。

NVIDIA 戰略的基礎是提供一套豐富、成熟的 SDK 和庫,在這些數據庫上可以構建應用程序。 NVIDIA 已經提供了高度優化的數學庫,如 cuBLAS 、 cuSolver 和 cuFFT ;核心庫,如 Thrust 和 libcu++ ;和通信庫,如 NCCL 和 NVSHMEM ,以及其他可用于構建應用程序的包和框架。

除此之外, NVIDIA 還將三種不同的編程方法分層:

標準語言并行性,這是本文的主題

用于平臺專業化的語言,如 CUDA C ++和 CUDA FORTRAN ,以獲得NVIDIA 平臺上的最佳性能

編譯器指令,通過啟用增量性能優化來彌合這兩種方法之間的差距

每種方法都在性能、生產率和代碼可移植性方面進行權衡。因為它們都可以互操作,所以您不必使用特定的模型,但可以根據需要混合任何或所有模型。

如果您開始使用標準編程語言中的并行性編寫代碼,那么您可以來到NVIDIA 平臺或任何其他已經具有并行運行能力的基線代碼平臺。這就是為什么我們在標準語言委員會中投入了十多年的時間來合作,采用特性來支持并行編程,而不需要額外的擴展或 API 。標準語言并行性是一股興起的潮流,它讓所有人都感到振奮。

ISO C ++

在編程趨勢的最近研究中, C ++編程語言一直是最高級的編程語言之一。它在科學計算中的應用有了顯著的增長。其標準模板庫的豐富性使其成為新代碼開發的高效語言,自 C ++ 17 發布以來,它支持并行編程的幾個重要特性。

我看到幾個應用程序從傳統的循環中重構,有利于這些 C ++并行算法。下面是其中幾個的結果。

Lulesh

Lulesh 是勞倫斯 LIVEMOR 國家實驗室( LLNL )的流體動力學迷你應用程序,用 C++ 編寫。 mini 應用程序有幾個版本用于評估不同的編程方法,包括代碼質量和性能。我們與開發人員一起工作,以重寫他們現有的基于 OpenMP 的代碼,使用 C ++并行算法。圖 2 顯示了應用程序重要功能之一的示例。

圖 2 。從 OpenMP 到 ISOC ++并行重構 Lulesh 會導致代碼更簡單、更容易閱讀、 ISO 標準,并可移植到支持 ISOC ++的所有編譯器中。

左邊的代碼使用 OpenMP 跨 CPU 線程并行化代碼中的循環。為了維護串行和并行版本的代碼,開發人員使用了#ifdef宏和編譯器雜注。結果是重復代碼,并在源代碼中引入額外的 API OpenMP 。

右邊的代碼是相同的例程,但是使用 C ++ transform_reduce算法重寫。生成的代碼更加緊湊,不易出錯,更易于閱讀,更易于維護。它還移除了 OpenMP 的依賴性,依賴于 C ++標準模板庫,同時為所有平臺維護單個源代碼。此代碼完全符合 ISO C ++,能夠由支持 C ++ 17 的任何 C ++編譯器構建。事實證明,它也更快!

圖 3 。 ISOLC ++版本的 Lulesh 比原始 OpenMP 代碼和便攜式多編譯器和 CPU 和 GPU 之間的速度快。

作為性能基準,我們使用運行在 AMD EPYC 7742 處理器所有核心上的 OpenMP 代碼,并使用 GCC 構建。使用 NVIDIA nvc++編譯器重建此基線代碼在 CPU 上實現了基本相同的性能。

如果您使用同一版本的 GCC 來構建 ISO C ++代碼,并在同一 CPU 上運行,則性能將提高約 50% ,這是由于編譯器的各種改進開銷和機會來更好地優化代碼。

當使用nvc++構建此代碼并在同一 CPU 上運行時,這將使性能提高 2 倍。這已經是一項激動人心的成就,但最重要的是,您可以構建相同的代碼,只需將編譯器選項更改為針對 NVIDIA GPU 而不是多核 CPU 。現在,同樣的代碼在 NvidiaA100 GPU 上運行速度快了 13 倍以上。從原始代碼中得到 13.5x 性能改進,在 CPU 和 GPU 上并行運行,使用嚴格的 ISO C ++代碼。

STLBM

應用 C ++標準并行性的另一個例子是 STLBM ,來自日內瓦大學的格子 Boltzmann 求解器。 Jonas Latt 教授在幾次 GTC 會議上討論了這一應用 顯示了如何在沒有任何外部 SDK 依賴關系的情況下編寫代碼在 ISO C ++中運行,可以使用多個編譯器和多個硬件平臺,包括 NVIDIA GPU 。有關詳細信息,請參閱 基于 C ++并行算法的 GPU 流體力學:一種硬件無關方法的最新進展 和 利用 C++ 標準并行技術在 GPU 中移植科學應用

他的應用程序使用 GPU 實現了超過 12 倍的性能改進。值得注意的是,他的比較基準是默認情況下并行的源代碼,使用 C ++ 17 標準模板庫中的并行算法來表示應用程序中固有的并行性。

他將使用ISO C++作為GPU編程的經驗歸類為“跨平臺CPU/GPU編程的范式轉換”。他的團隊沒有編寫一個默認為串行的應用程序,然后再添加并行性,而是編寫了一個適用于他們希望運行的任何并行平臺的應用程序。

圖 4 。 STLBM 能夠在多核 CPU 節點和 NVIDIA GPU 上運行相同的源代碼

NVIDIA 在 C ++中并行開發和并發性的大量投資,并為即將到來的 C ++ 23 規范編寫了各種建議,以進一步提高您編寫并行的代碼的能力。

ISO Fortran

Fortran 仍然是一種主要關注科學和高性能計算的語言。最初, Fortran 是公式轉換器,它為開發人員和編譯器提供了多種優勢,并且還擁有用于建模和仿真代碼的龐大現有代碼庫。

Fortran 在 2008 年開始添加支持并行編程的功能,在 2018 年增強了這些功能,并在即將發布的版本(目前稱為 Fortran 202X )中繼續完善這些功能。與 ISOC ++一樣, NVIDIA 也一直在與應用程序開發人員一起使用 FORTRAN 中的標準語言并行化來實現它們的應用程序的現代化,并使它們并行。

計算化學

我的同事杰夫·哈蒙德在他的 FortranCon2021:GPU 上的標準 Fortran 及其在量子化學代碼中的應用 session 在 NWChem 應用程序和另一個計算化學應用程序 GAMESS 的內核中使用 Fortran do concurrent循環,給出了一些有希望的結果。

對于 NWChem ,他分離了幾個執行張量收縮的性能關鍵循環,并使用幾個編程模型編寫了它們。在多核 CPU 上,這些張量收縮使用 OpenMP 跨 CPU 核進行線程。對于 GPU ,有使用 OpenACC 、 OpenMP 目標卸載和現在的 Fortran do concurrent循環的版本可用。

圖 5 顯示了do concurrent循環的性能與 NVIDIA GPU 上的 OpenACC 和 OpenMP 目標卸載相同,但不需要在應用程序中包含這些附加 API 。這都是標準的 Fortran 。

圖 5 使用幾種編程模型的一系列 NWChem 應用程序內核的性能

高性能通量傳輸

在 SC21 會議的最近一次加速器編程使用指令研討會( WACCPD )上, 預測科學公司。 的一組開發人員展示了他們重構其中一個生產代碼的結果,該代碼以前使用 OpenACC 在 NVIDIA GPU 上運行,使用do concurrent循環。

他們比較了使用 NVIDIA nvfortran、gfortran和ifort構建這個純 ISO Fortran 應用程序的結果。他們得出結論,在使用nvfortran編譯器的應用程序中,純 Fortran 提供了他們所需的性能,而不需要任何指令。此外,此代碼可以在 GPU 和多核 CPU 上并行運行,無需修改。

圖 6 。使用 nvfortran compiler

這篇論文在研討會上獲得了最佳論文獎,盡管它根本不需要加速器編程的指導。當被問及他們是否會在其他應用程序中繼續采用標準語言并行方法時,演示者回答說,他們已經計劃在公司的其他重要應用程序中采用這種方法。

Python 帶有連字符和楔形文字

Python 語言在過去十年中迅速流行起來。它現在通常用于機器學習、數據科學,甚至是傳統的建模和仿真應用。雖然 Python 不是 ISO 編程語言,像 C ++和 FORTRAN ,但是我們也在 Python 語言中實現標準語言并行性的精神。

在 GTC ‘ 21 秋季的基調演講中, NVIDIA 首席執行官 Jensen Huang 介紹了 cuNumeric 的 alpha 版本,該庫是在 NumPy 之后建模的,它能夠實現與我所討論的關于 ISO C ++和 FORTRAN 的特性。 NumPy 包在 Python 開發中非常普遍,幾乎可以肯定,任何用 Python 編寫的 HPC 應用程序都會使用它。

在名為 Legate 的包之上編寫的cuNumeric包使 NumPy 應用程序不僅能夠在 GPU 上,而且能夠在大型集群中跨 GPU 自動擴展其工作。我已經看到了幾個例子,簡單地替換代碼中的NumPy引用,而不是引用cuNumeric,我可以將該應用程序弱地縮放到 NVIDIA 內部集群的完整大小, Selene,這是世界上10個最快的超級計算機之一。

結論

我希望這篇文章能讓你看到 GPU 編程并不像你可能聽說的那么困難。如果使用標準語言并行性,甚至可能不需要任何代碼更改。

NVIDIA 鼓勵您先編寫并行應用程序,這樣就不需要將應用程序“移植”到新平臺,而標準語言并行是實現這一點的最佳方法,因為它只需要 ISO 標準語言。這就是為什么我們繼續投資于 ISO 編程語言,并為這些語言帶來更多并行和并發特性。

總之,使用標準語言并行性有以下好處:

完全符合 ISO 語言,從而產生更可移植的代碼

更緊湊、更易于閱讀、不易出錯的代碼

默認情況下是并行的代碼,因此它可以在更多平臺上運行而無需修改

關于作者

Jeff Larkin 是 NVIDIA HPC 軟件團隊的首席 HPC 應用程序架構師。他熱衷于高性能計算并行編程模型的發展和采用。他曾是 NVIDIA 開發人員技術小組的成員,專門從事高性能計算應用程序的性能分析和優化。 Jeff 還是 OpenACC 技術委員會主席,曾在 OpenACC 和 OpenMP 標準機構工作。在加入NVIDIA 之前,杰夫在位于橡樹嶺國家實驗室的克雷超級計算卓越中心工作。

審核編輯:郭婷

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

    關注

    14

    文章

    5026

    瀏覽量

    103292
  • gpu
    gpu
    +關注

    關注

    28

    文章

    4754

    瀏覽量

    129093
  • 應用程序
    +關注

    關注

    37

    文章

    3283

    瀏覽量

    57766
收藏 人收藏

    評論

    相關推薦

    《CST Studio Suite 2024 GPU加速計算指南》

    監控/利用率、選擇可用GPU卡子集等內容。 6. 故障排除:針對NVIDIA驅動安裝、多GPU設置、GPU模式、硬件識別、CUDA錯誤、TCC模式等問題給出了相應的解決方法
    發表于 12-16 14:25

    NVIDIA加速計算如何推動醫療健康

    近日,NVIDIA 企業平臺副總裁 Bob Pette 在 AI Summit 一場演講中重點談論了 NVIDIA 加速計算如何推動醫療健康
    的頭像 發表于 11-20 09:10 ?313次閱讀

    NVIDIA向開放計算項目捐贈Blackwell平臺設計

    近日,在美國加利福尼亞州舉行的 OCP 全球峰會上,NVIDIA 宣布已把 NVIDIA Blackwell 加速計算平臺的一些基礎元素捐贈
    的頭像 發表于 11-19 15:30 ?218次閱讀

    GPU加速計算平臺是什么

    GPU加速計算平臺,簡而言之,是利用圖形處理器(GPU)的強大并行計算能力來加速科學
    的頭像 發表于 10-25 09:23 ?264次閱讀

    電流計算方法與配線法的區別

    電流計算方法與配線法是兩個不同的概念,它們在電氣工程和電子設計中扮演著重要的角色。電流計算方法主要涉及到電流的計算和分析,而配線法則是關于如何安全、有效地將電氣設備連接在一起的實踐。 電流計算
    的頭像 發表于 09-19 16:00 ?478次閱讀

    利用NVIDIA RAPIDS加速DolphinDB Shark平臺提升計算性能

    DolphinDB 是一家高性能數據庫研發企業,也是 NVIDIA 初創加速計劃成員,其開發的產品基于高性能分布式時序數據庫,是支持復雜計算和流數據分析的實時計算
    的頭像 發表于 09-09 09:57 ?488次閱讀
    <b class='flag-5'>利用</b><b class='flag-5'>NVIDIA</b> RAPIDS<b class='flag-5'>加速</b>DolphinDB Shark<b class='flag-5'>平臺</b>提升<b class='flag-5'>計算</b>性能

    使用位置傳感器輸出數據的角度計算方法

    電子發燒友網站提供《使用位置傳感器輸出數據的角度計算方法.pdf》資料免費下載
    發表于 08-30 10:37 ?0次下載
    使用位置傳感器輸出數據的角度<b class='flag-5'>計算方法</b>

    【SOC的多種計算方法

    SOC的多種計算方法
    的頭像 發表于 06-05 09:34 ?2232次閱讀
    【SOC的多種<b class='flag-5'>計算方法</b>】

    儲能容量的計算方法

    隨著可再生能源的大規模應用和電力系統的日益復雜,儲能技術的重要性日益凸顯。儲能容量作為儲能技術的關鍵參數之一,其計算方法對于評估儲能系統的性能、優化儲能系統的配置以及提高電力系統的穩定性等方面具有重要意義。本文將對儲能容量的計算方法進行詳細介紹,并探討其在實際應用中的意義
    的頭像 發表于 05-20 15:20 ?4928次閱讀

    NVIDIA通過CUDA-Q平臺為全球各地的量子計算中心提供加速

    德國、日本和波蘭的超級計算利用 Grace-Hopper 和量子-經典加速超算平臺推進量子計算研究。
    的頭像 發表于 05-14 09:15 ?377次閱讀

    NVIDIA 通過 CUDA-Q 平臺為全球各地的量子計算中心提供加速

    德國、日本和波蘭的超級計算利用 Grace-Hopper 和量子-經典加速超算平臺推進量子計算研究 ? ? 德國漢堡 —— 國際超算大會(
    發表于 05-13 15:21 ?209次閱讀
    <b class='flag-5'>NVIDIA</b> 通過 CUDA-Q <b class='flag-5'>平臺</b>為全球各地的量子<b class='flag-5'>計算</b>中心提供<b class='flag-5'>加速</b>

    NVIDIA加速微軟最新的Phi-3 Mini開源語言模型

    NVIDIA 宣布使用 NVIDIA TensorRT-LLM 加速微軟最新的 Phi-3 Mini 開源語言模型。TensorRT-LLM 是一個開源庫,用于優化從 PC 到云端的
    的頭像 發表于 04-28 10:36 ?593次閱讀

    電壓探頭延遲計算方法及應用

    在電子測試和測量中,電壓探頭是一種常用的工具,用于測量電路中的電壓信號。然而,電壓探頭本身會引入一定的延遲,這可能會對測量結果產生影響。本文將介紹電壓探頭延遲的計算方法,并探討其在實際應用中的重要性
    的頭像 發表于 04-28 10:28 ?588次閱讀
    電壓探頭延遲<b class='flag-5'>計算方法</b>及應用

    Cadence與NVIDIA聯合推出利用加速計算和生成式AI重塑設計

    中國上海,2024 年 3 月 25 日——楷登電子(美國 Cadence 公司,NASDAQ:CDNS)近日宣布,公司將深化與 NVIDIA 在 EDA、系統設計與分析、數字生物學和人工智能領域的多年合作,推出兩款變革性解決方案,利用
    的頭像 發表于 03-25 14:36 ?632次閱讀

    NVIDIA cuPQC幫助開發適用于量子計算時代的加密技術

    NVIDIA cuPQC 可為相關開發者提供加速計算支持,幫助開發適用于量子計算時代的加密技術。cuPQC 庫可利用 GPU
    的頭像 發表于 03-22 09:53 ?437次閱讀
    主站蜘蛛池模板: 一区二区三区高清| 欧美色人阁| 伊在线视频| 4虎 影视 免费| 综合精品视频| 天天色操| 亚洲综合色站| 男女透逼视频| 99精品国产在热久久| 一级 黄 色 片免费| 色婷婷综合在线| 欧美色交| 国产三及| 亚洲色图激情| 男人资源| 天天干国产| 成人精品在线观看| 亚洲精品91香蕉综合区| 午夜黄色毛片| 久久精品国产精品亚洲红杏| 欧美成人免费夜夜黄啪啪| 免费久久精品国产片香蕉| 亚洲伊人网站| 日本成片免费高清| 国产成人精品男人的天堂538| 天天爽夜夜爽一区二区三区| 爱婷婷视频在线观看| 午夜视频在线观看国产www| 免费理论片在线观看播放| 狂野欧美性猛交xxxx免费| aa在线免费观看| 国产综合第一页在线视频| 欧美一级特黄高清免费| 天天干天天草天天| 国产不卡毛片| 亚洲小便| 男人的j桶女人的j视频| 色综合精品| 国产成人在线网址| 乱人伦精品一区二区| 性过程很黄的小说男男|