91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

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

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

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

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

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

ISO C ++

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

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

Lulesh

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

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

左邊的代碼使用 OpenMP 跨 CPU 線程并行化代碼中的循環(huán)。為了維護串行和并行版本的代碼,開發(fā)人員使用了#ifdef宏和編譯器雜注。結(jié)果是重復代碼,并在源代碼中引入額外的 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 上實現(xiàn)了基本相同的性能。

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

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

STLBM

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

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

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

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

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

ISO Fortran

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

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

計算化學

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

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

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

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

高性能通量傳輸

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

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

圖 6 。使用 nvfortran compiler

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

Python 帶有連字符和楔形文字

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

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

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

結(jié)論

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

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

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

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

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

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

關于作者

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

審核編輯:郭婷

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

    關注

    14

    文章

    5617

    瀏覽量

    109866
  • gpu
    gpu
    +關注

    關注

    28

    文章

    5209

    瀏覽量

    135603
  • 應用程序
    +關注

    關注

    38

    文章

    3344

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    NVIDIA DGX SuperPOD為Rubin平臺橫向擴展提供藍圖

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

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

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

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

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

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

    硬件消抖是通過電路設計消除機械開關(如按鍵、繼電器等)在閉合或斷開時產(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)絡的并行計算加速技術

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

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

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

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

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

    全球各大品牌利用NVIDIA AI技術提升運營效率

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

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

    基于 NVIDIA 安全的全棧機器人開發(fā)平臺,Agile?Robots、Humanoid、Neura?Robotics、Universal Robots、Vorwerk?和?Wandelbots 等公司推出 NVIDIA
    的頭像 發(fā)表于 06-16 13:54 ?1517次閱讀

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

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

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

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

    英偉達GTC2025亮點:Oracle與NVIDIA合作助力企業(yè)加速代理式AI推理

    Oracle 數(shù)據(jù)庫與 NVIDIA AI 相集成,使企業(yè)能夠更輕松、快捷地采用代理式 AI Oracle 和 NVIDIA 宣布,NVIDIA 加速
    的頭像 發(fā)表于 03-21 12:01 ?1475次閱讀
    英偉達GTC2025亮點:Oracle與<b class='flag-5'>NVIDIA</b>合作助力企業(yè)<b class='flag-5'>加速</b>代理式AI推理

    NVIDIA GTC2025 亮點 NVIDIA推出 DGX Spark個人AI計算

    臺式超級計算機由 NVIDIA Grace Blackwell 驅(qū)動,為開發(fā)者、研究人員和數(shù)據(jù)科學家提供加速 AI 功能;系統(tǒng)由頭部計算機制造商(包括華碩、Dell Technolog
    的頭像 發(fā)表于 03-20 18:59 ?1655次閱讀
    <b class='flag-5'>NVIDIA</b> GTC2025 亮點  <b class='flag-5'>NVIDIA</b>推出 DGX Spark個人AI<b class='flag-5'>計算</b>機

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

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