日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

NVIDIA 平臺是最成熟、最完整的加速計(jì)算平臺。在這篇文章中,我將介紹最簡單、最高效、最可移植的加速計(jì)算方法。有三種編程方法 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ù)計(jì),開發(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é)計(jì)算中的應(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 ?,F(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é)和高性能計(jì)算的語言。最初, 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)代化,并使它們并行。

計(jì)算化學(xué)

我的同事杰夫·哈蒙德在他的 FortranCon2021:GPU 上的標(biāo)準(zhǔn) Fortran 及其在量子化學(xué)代碼中的應(yīng)用 session 在 NWChem 應(yīng)用程序和另一個計(jì)算化學(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)計(jì)劃在公司的其他重要應(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ì)算機(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)師。他熱衷于高性能計(jì)算并行編程模型的發(fā)展和采用。他曾是 NVIDIA 開發(fā)人員技術(shù)小組的成員,專門從事高性能計(jì)算應(yīng)用程序的性能分析和優(yōu)化。 Jeff 還是 OpenACC 技術(shù)委員會主席,曾在 OpenACC 和 OpenMP 標(biāo)準(zhǔn)機(jī)構(gòu)工作。在加入NVIDIA 之前,杰夫在位于橡樹嶺國家實(shí)驗(yàn)室的克雷超級計(jì)算卓越中心工作。

審核編輯:郭婷

聲明:本文內(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

    文章

    5714

    瀏覽量

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

    關(guān)注

    28

    文章

    5307

    瀏覽量

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

    關(guān)注

    38

    文章

    3347

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    aduc841的定時周期的正確計(jì)算方法是怎么樣的

    ADUC841,MCU外接11.0592M的晶振,不分頻,目前使用ADUC841的定時器0,配置為模式1,TH0設(shè)置為0x028,TL0設(shè)置為0x00,按照理論計(jì)算定時周期應(yīng)該是6s吧,實(shí)際測量是1s,請問aduc841的定時周期的正確計(jì)算方法是怎么樣的?
    發(fā)表于 05-15 06:55

    尋找對RISCV眾核并行計(jì)算感興趣的伙伴、朋友

    一、我們在RISCV眾核并行計(jì)算方案包括: 1、眾核芯片 自研RISCV CPU IP,和自研NOC IP(片上網(wǎng)絡(luò)),在單一芯片上利用NOC IP連接幾十/幾百/幾千個以上的CPU核,組成眾核芯片
    發(fā)表于 03-28 14:41

    尋找對RISCV眾核并行計(jì)算感興趣的伙伴

    一、我們在RISCV眾核并行計(jì)算方案包括: 1、眾核芯片 自研RISCV CPU IP,和自研NOC IP(片上網(wǎng)絡(luò)),在單一芯片上利用NOC IP連接幾十/幾百/幾千個以上的CPU核,組成眾核芯片
    發(fā)表于 03-28 14:37

    NVIDIA攜手微軟加速機(jī)器人和物理AI的發(fā)展

    在 GTC 大會上,微軟宣布了其代理式和物理 AI 系統(tǒng)統(tǒng)一平臺的更新,加速從實(shí)驗(yàn)到生產(chǎn)落地的進(jìn)程。將 Microsoft Foundry 與 NVIDIA 開放模型和加速
    的頭像 發(fā)表于 03-23 15:21 ?1063次閱讀

    NVIDIA加速計(jì)算平臺助力從地球到太空的AI應(yīng)用

    NVIDIA 今日宣布,其最新一代加速計(jì)算平臺正在開啟太空創(chuàng)新的新時代,將為軌道數(shù)據(jù)中心 (ODC)、地理空間信息收集以及自主太空運(yùn)行提供 AI 算力。
    的頭像 發(fā)表于 03-18 14:44 ?630次閱讀

    NVIDIA DGX SuperPOD為Rubin平臺橫向擴(kuò)展提供藍(lán)圖

    NVIDIA DGX Rubin 系統(tǒng)整合了 NVIDIA計(jì)算、網(wǎng)絡(luò)和軟件領(lǐng)域的最新突破,將推理 token 成本降至 NVIDIA Blackwell
    的頭像 發(fā)表于 01-14 09:14 ?965次閱讀

    NVIDIA CUDA Tile的創(chuàng)新之處、工作原理以及使用方法

    NVIDIA CUDA 13.1 推出 NVIDIA CUDA Tile,這是自 2006 年 NVIDIA CUDA 平臺發(fā)明以來,最大的一次技術(shù)進(jìn)步。這一令人振奮的創(chuàng)新引入了一套面
    的頭像 發(fā)表于 12-24 10:17 ?727次閱讀
    <b class='flag-5'>NVIDIA</b> CUDA Tile的創(chuàng)新之處、工作原理以及使用<b class='flag-5'>方法</b>

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

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

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

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

    一文了解Mojo編程語言

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

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

    問題。因此,并行計(jì)算加速技術(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 ?1354次閱讀
    神經(jīng)網(wǎng)絡(luò)的<b class='flag-5'>并行計(jì)算</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 ?1717次閱讀

    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 ?1074次閱讀

    全球各大品牌利用NVIDIA AI技術(shù)提升運(yùn)營效率

    歐萊雅、LVMH 集團(tuán)和雀巢利用 NVIDIA 加速的智能體 AI 和物理 AI,大幅提升產(chǎn)品設(shè)計(jì)、營銷及物流等方面的運(yùn)營效率。
    的頭像 發(fā)表于 06-19 14:36 ?1412次閱讀

    NVIDIA技術(shù)助力歐洲廠商推出機(jī)器人系統(tǒng)與平臺

    基于 NVIDIA 安全的全棧機(jī)器人開發(fā)平臺,Agile?Robots、Humanoid、Neura?Robotics、Universal Robots、Vorwerk?和?Wandelbots 等公司推出 NVIDIA
    的頭像 發(fā)表于 06-16 13:54 ?1887次閱讀
    安福县| 阳原县| 元阳县| 天峻县| 淄博市| 嘉禾县| 西和县| 逊克县| 方城县| 柳州市| 霸州市| 浦江县| 开封县| 新余市| 潜江市| 崇信县| 阳信县| 横峰县| 获嘉县| 新闻| 二连浩特市| 新干县| 通州市| 襄汾县| 许昌县| 嘉义市| 正镶白旗| 玉田县| 巴林右旗| 安仁县| 江永县| 攀枝花市| 察雅县| 荥经县| 吉木萨尔县| 蕉岭县| 奉贤区| 黄大仙区| 东阳市| 沛县| 治县。|