chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

星星科技指導(dǎo)員 ? 來源:NVIDIA ? 作者:Jeff Larkin ? 2022-04-14 09:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

CUDA C ++ Fortran 是 NVIDIA 可以展示新硬件和軟件創(chuàng)新的創(chuàng)新平臺,在這里,您可以調(diào)整應(yīng)用程序以在 NVIDIA GPU 上實(shí)現(xiàn)最佳性能。許多開發(fā)人員認(rèn)為這就是 NVIDIA 希望每個人為 GPU 編程的方式。

相反,我們預(yù)計,開發(fā)者首次來到NVIDIA平臺將使用標(biāo)準(zhǔn)的并行編程語言,如 ISO C ++、 ISO Fortran 和 Python 。在這篇文章中,我強(qiáng)調(diào)了使用這種方法進(jìn)行并行編程的一些成功,以證明進(jìn)入NVIDIA CUDA 生態(tài)系統(tǒng)的最有成效的途徑。

NVIDIA 戰(zhàn)略的基礎(chǔ)是提供一套豐富、成熟的 SDK 和庫,在這些數(shù)據(jù)庫上可以構(gòu)建應(yīng)用程序。 NVIDIA 已經(jīng)提供了高度優(yōu)化的數(shù)學(xué)庫,如 cuBLAS 、 cuSolver 和 cuFFT ;核心庫,如 Thrust 和 libcu++ ;和通信庫,如 NCCL 和 NVSHMEM ,以及其他可用于構(gòu)建應(yīng)用程序的包和框架。

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

標(biāo)準(zhǔn)語言并行性,這是本文的主題

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

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

每種方法都在性能、生產(chǎn)率和代碼可移植性方面進(jìn)行權(quán)衡。因?yàn)樗鼈兌伎梢曰ゲ僮?,所以您不必使用特定的模型,但可以根?jù)需要混合任何或所有模型。

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

ISO C ++

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

我看到幾個應(yīng)用程序從傳統(tǒng)的循環(huán)中重構(gòu),有利于這些 C ++并行算法。下面是其中幾個的結(jié)果。

Lulesh

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

圖 2 。從 OpenMP 到 ISOC ++并行重構(gòu) Lulesh 會導(dǎo)致代碼更簡單、更容易閱讀、 ISO 標(biāo)準(zhǔn),并可移植到支持 ISOC ++的所有編譯器中。

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

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

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

作為性能基準(zhǔn),我們使用運(yùn)行在 AMD EPYC 7742 處理器所有核心上的 OpenMP 代碼,并使用 GCC 構(gòu)建。使用 NVIDIA nvc++編譯器重建此基線代碼在 CPU 上實(shí)現(xiàn)了基本相同的性能。

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

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

STLBM

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

他的應(yīng)用程序使用 GPU 實(shí)現(xiàn)了超過 12 倍的性能改進(jìn)。值得注意的是,他的比較基準(zhǔn)是默認(rèn)情況下并行的源代碼,使用 C ++ 17 標(biāo)準(zhǔn)模板庫中的并行算法來表示應(yīng)用程序中固有的并行性。

他將使用ISO C++作為GPU編程的經(jīng)驗(yàn)歸類為“跨平臺CPU/GPU編程的范式轉(zhuǎn)換”。他的團(tuán)隊(duì)沒有編寫一個默認(rèn)為串行的應(yīng)用程序,然后再添加并行性,而是編寫了一個適用于他們希望運(yùn)行的任何并行平臺的應(yīng)用程序。

圖 4 。 STLBM 能夠在多核 CPU 節(jié)點(diǎn)和 NVIDIA GPU 上運(yùn)行相同的源代碼

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

ISO Fortran

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

Fortran 在 2008 年開始添加支持并行編程的功能,在 2018 年增強(qiáng)了這些功能,并在即將發(fā)布的版本(目前稱為 Fortran 202X )中繼續(xù)完善這些功能。與 ISOC ++一樣, NVIDIA 也一直在與應(yīng)用程序開發(fā)人員一起使用 FORTRAN 中的標(biāo)準(zhǔn)語言并行化來實(shí)現(xiàn)它們的應(yīng)用程序的現(xiàn)代化,并使它們并行。

計算化學(xué)

我的同事杰夫·哈蒙德在他的 FortranCon2021:GPU 上的標(biāo)準(zhǔn) Fortran 及其在量子化學(xué)代碼中的應(yīng)用 session 在 NWChem 應(yīng)用程序和另一個計算化學(xué)應(yīng)用程序 GAMESS 的內(nèi)核中使用 Fortran do concurrent循環(huán),給出了一些有希望的結(jié)果。

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

圖 5 顯示了do concurrent循環(huán)的性能與 NVIDIA GPU 上的 OpenACC 和 OpenMP 目標(biāo)卸載相同,但不需要在應(yīng)用程序中包含這些附加 API 。這都是標(biāo)準(zhǔn)的 Fortran 。

圖 5 使用幾種編程模型的一系列 NWChem 應(yīng)用程序內(nèi)核的性能

高性能通量傳輸

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

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

圖 6 。使用 nvfortran compiler

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

Python 帶有連字符和楔形文字

Python 語言在過去十年中迅速流行起來。它現(xiàn)在通常用于機(jī)器學(xué)習(xí)、數(shù)據(jù)科學(xué),甚至是傳統(tǒng)的建模和仿真應(yīng)用。雖然 Python 不是 ISO 編程語言,像 C ++和 FORTRAN ,但是我們也在 Python 語言中實(shí)現(xiàn)標(biāo)準(zhǔn)語言并行性的精神。

在 GTC ‘ 21 秋季的基調(diào)演講中, NVIDIA 首席執(zhí)行官 Jensen Huang 介紹了 cuNumeric 的 alpha 版本,該庫是在 NumPy 之后建模的,它能夠?qū)崿F(xiàn)與我所討論的關(guān)于 ISO C ++和 FORTRAN 的特性。 NumPy 包在 Python 開發(fā)中非常普遍,幾乎可以肯定,任何用 Python 編寫的 HPC 應(yīng)用程序都會使用它。

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

結(jié)論

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

NVIDIA 鼓勵您先編寫并行應(yīng)用程序,這樣就不需要將應(yīng)用程序“移植”到新平臺,而標(biāo)準(zhǔn)語言并行是實(shí)現(xiàn)這一點(diǎn)的最佳方法,因?yàn)樗恍枰?ISO 標(biāo)準(zhǔn)語言。這就是為什么我們繼續(xù)投資于 ISO 編程語言,并為這些語言帶來更多并行和并發(fā)特性。

總之,使用標(biāo)準(zhǔn)語言并行性有以下好處:

完全符合 ISO 語言,從而產(chǎn)生更可移植的代碼

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

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

關(guān)于作者

Jeff Larkin 是 NVIDIA HPC 軟件團(tuán)隊(duì)的首席 HPC 應(yīng)用程序架構(gòu)師。他熱衷于高性能計算并行編程模型的發(fā)展和采用。他曾是 NVIDIA 開發(fā)人員技術(shù)小組的成員,專門從事高性能計算應(yīng)用程序的性能分析和優(yōu)化。 Jeff 還是 OpenACC 技術(shù)委員會主席,曾在 OpenACC 和 OpenMP 標(biāo)準(zhǔn)機(jī)構(gòu)工作。在加入NVIDIA 之前,杰夫在位于橡樹嶺國家實(shí)驗(yàn)室的克雷超級計算卓越中心工作。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    5513

    瀏覽量

    109200
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    5118

    瀏覽量

    134556
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    38

    文章

    3342

    瀏覽量

    60011
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    利用NVIDIA Cosmos開放世界基礎(chǔ)模型加速物理AI開發(fā)

    NVIDIA 最近發(fā)布了 NVIDIA Cosmos 開放世界基礎(chǔ)模型(WFM)的更新,旨在加速物理 AI 模型的測試與驗(yàn)證數(shù)據(jù)生成。借助 NVIDIA Omniverse 庫和 Co
    的頭像 發(fā)表于 12-01 09:25 ?622次閱讀

    硬件消抖方案元件參數(shù)的計算方法

    硬件消抖是通過電路設(shè)計消除機(jī)械開關(guān)(如按鍵、繼電器等)在閉合或斷開時產(chǎn)生的抖動信號。以下是常見硬件消抖方案及其元件參數(shù)計算方法: 1. RC濾波消抖(低通濾波) 原理:利用電容的充放電特性,延緩
    發(fā)表于 11-19 06:31

    一文了解Mojo編程語言

    Mojo 是一種由 Modular AI 公司開發(fā)的編程語言,旨在將 Python 的易用性與 C 語言的高性能相結(jié)合,特別適合人工智能(AI)、高性能計算(HPC)和系統(tǒng)級
    發(fā)表于 11-07 05:59

    神經(jīng)網(wǎng)絡(luò)的并行計算加速技術(shù)

    問題。因此,并行計算加速技術(shù)在神經(jīng)網(wǎng)絡(luò)研究和應(yīng)用中變得至關(guān)重要,它們能夠顯著提升神經(jīng)網(wǎng)絡(luò)的性能和效率,滿足實(shí)際應(yīng)用中對快速響應(yīng)和大規(guī)模數(shù)據(jù)處理的需求。神經(jīng)網(wǎng)絡(luò)并行
    的頭像 發(fā)表于 09-17 13:31 ?917次閱讀
    神經(jīng)網(wǎng)絡(luò)的<b class='flag-5'>并行計算</b>與<b class='flag-5'>加速</b>技術(shù)

    Cadence 借助 NVIDIA DGX SuperPOD 模型擴(kuò)展數(shù)字孿生平臺庫,加速 AI 數(shù)據(jù)中心部署與運(yùn)營

    [1]? 利用搭載 DGX GB200 系統(tǒng)的 NVIDIA DGX SuperPOD[2]?數(shù)字孿生系統(tǒng)實(shí)現(xiàn)了庫的重大擴(kuò)展 。借助 NVIDIA 高性能加速
    的頭像 發(fā)表于 09-15 15:19 ?1292次閱讀

    Votee AI借助NVIDIA技術(shù)加速方言小語種LLM開發(fā)

    Votee AI 利用 NVIDIA 的 GPU 硬件、NeMo Curator 數(shù)據(jù)處理軟件、NeMo Framework 模型訓(xùn)練框架及 Auto Configurator 優(yōu)化工具,高效構(gòu)建
    的頭像 發(fā)表于 08-20 14:21 ?682次閱讀

    NVIDIA助力解決量子計算領(lǐng)域重大挑戰(zhàn)

    NVIDIA 加速量子研究中心提供了強(qiáng)大的工具,助力解決量子計算領(lǐng)域的重大挑戰(zhàn)。
    的頭像 發(fā)表于 03-27 09:17 ?1053次閱讀

    Cognizant將與NVIDIA合作部署神經(jīng)人工智能平臺加速企業(yè)人工智能應(yīng)用

    -Cognizant將與NVIDIA合作部署神經(jīng)人工智能平臺,加速企業(yè)人工智能應(yīng)用 Cognizant將在關(guān)鍵增長領(lǐng)域提供解決方案,包括企業(yè)級AI智能體、定制化行業(yè)大型語言模型及搭載
    的頭像 發(fā)表于 03-26 14:42 ?600次閱讀
    Cognizant將與<b class='flag-5'>NVIDIA</b>合作部署神經(jīng)人工智能<b class='flag-5'>平臺</b>,<b class='flag-5'>加速</b>企業(yè)人工智能應(yīng)用

    Oracle 與 NVIDIA 合作助力企業(yè)加速代理式 AI 推理

    ——Oracle 和 NVIDIA 今日宣布,NVIDIA 加速計算和推理軟件與 Oracle 的 AI 基礎(chǔ)設(shè)施以及生成式 AI 服務(wù)首次實(shí)現(xiàn)集成,以幫助全球企業(yè)組織
    發(fā)表于 03-19 15:24 ?480次閱讀
    Oracle 與 <b class='flag-5'>NVIDIA</b> 合作助力企業(yè)<b class='flag-5'>加速</b>代理式 AI 推理

    GPU加速計算平臺的優(yōu)勢

    傳統(tǒng)的CPU雖然在日常計算任務(wù)中表現(xiàn)出色,但在面對大規(guī)模并行計算需求時,其性能往往捉襟見肘。而GPU加速計算平臺憑借其獨(dú)特的優(yōu)勢,吸引了行業(yè)
    的頭像 發(fā)表于 02-23 16:16 ?805次閱讀

    Amphitrite借助NVIDIA Earth-2平臺優(yōu)化船舶航線

    作為 NVIDIA 初創(chuàng)加速計劃的成員,這家初創(chuàng)公司幫助船舶充分利用洋流和 AI 的力量,通過 NVIDIA Earth-2 平臺縮短航行時
    的頭像 發(fā)表于 02-14 10:04 ?993次閱讀

    數(shù)字電路編程語言介紹

    文本形式描述電路的行為和結(jié)構(gòu)。 并行性和并發(fā)性 :數(shù)字電路編程語言支持并行和并發(fā)操作的描述,這是數(shù)字電路設(shè)計中的基本特性。 模塊化 :這些語言
    的頭像 發(fā)表于 01-24 09:39 ?1436次閱讀

    利用NVIDIA DPF引領(lǐng)DPU加速計算的未來

    越來越多的企業(yè)開始采用加速計算,從而滿足生成式 AI、5G 電信和主權(quán)云的需求。NVIDIA 推出了 DOCA 平臺框架(DPF),該框架提供了基礎(chǔ)構(gòu)建模塊來釋放
    的頭像 發(fā)表于 01-24 09:29 ?1331次閱讀
    <b class='flag-5'>利用</b><b class='flag-5'>NVIDIA</b> DPF引領(lǐng)DPU<b class='flag-5'>加速</b>云<b class='flag-5'>計算</b>的未來

    NVIDIA發(fā)布Cosmos平臺加速物理AI開發(fā)

    NVIDIA近日宣布了一項(xiàng)重大創(chuàng)新——推出NVIDIA Cosmos?平臺。該平臺集成了先進(jìn)的生成式世界基礎(chǔ)模型、高級tokenizer、護(hù)欄以及
    的頭像 發(fā)表于 01-13 11:06 ?1075次閱讀

    NVIDIA Cosmos世界基礎(chǔ)模型平臺發(fā)布

    NVIDIA 宣布推出NVIDIA Cosmos,該平臺由先進(jìn)的生成式世界基礎(chǔ)模型、高級 tokenizer、護(hù)欄和加速視頻處理管線組成,將推動自動駕駛汽車(AV)和機(jī)器人等物理 AI
    的頭像 發(fā)表于 01-08 10:39 ?1069次閱讀