NVIDIA Base Command Platform 提供了自信地開發(fā)復(fù)雜軟件的能力,這些軟件符合科學(xué)計(jì)算工作流程所需的性能標(biāo)準(zhǔn)。該平臺(tái)為開發(fā)人員提供高效配置和管理人工智能工作流程所需的工具,從而為人工智能開發(fā)提供云托管和本地解決方案。集成的數(shù)據(jù)和用戶管理簡(jiǎn)化了用戶和管理員的體驗(yàn)。
現(xiàn)在,使用 NVIDIA Modulus 和基本指揮平臺(tái)在團(tuán)隊(duì)和地點(diǎn)之間創(chuàng)建高保真數(shù)字雙胞胎是 high-performance computing ( HPC )工作流可用的最新工具。對(duì)于從預(yù)測(cè)最優(yōu) airplane maintenance schedules 到 simulating wind farms 的許多用例來說,創(chuàng)建和使用數(shù)字雙胞胎對(duì)于節(jié)省時(shí)間和金錢至關(guān)重要。
開始使用這些用例可能會(huì)讓人望而卻步。然而,一個(gè)集成良好的解決方案會(huì)帶來所有的不同,并使開發(fā)人員能夠?qū)W⒂诮鉀Q問題。 Base Command Platform 只需點(diǎn)擊幾下即可實(shí)現(xiàn) NGC 目錄軟件的全方位功能,并能夠創(chuàng)建強(qiáng)大的物理知情機(jī)器學(xué)習(xí)( physics ML )神經(jīng)網(wǎng)絡(luò)和氣候模型。
利用 FourCastNet 進(jìn)行氣候建模
FourCastNet 是開源 Modulus 平臺(tái)的一部分,專注于以以前不可能的速度創(chuàng)建全球天氣預(yù)報(bào)。它依靠傅立葉神經(jīng)算子和變換器在性能和分辨率上實(shí)現(xiàn)了這一令人難以置信的飛躍。 FourCastNet 現(xiàn)在與基本命令平臺(tái)兼容。
ERA5 dataset 是一個(gè)幾十年來整個(gè)地球的復(fù)雜天氣數(shù)據(jù)集,用于訓(xùn)練和驗(yàn)證這樣一個(gè)復(fù)雜的模型。 FourCastNet 是實(shí)現(xiàn) NVIDIA Earth-2 數(shù)字孿生的關(guān)鍵技術(shù)。有關(guān)更多信息,請(qǐng)參閱 NVIDIA to Build Earth-2 Supercomputer to See Our Future 。
Modulus 團(tuán)隊(duì)一直在尋求提高 FourCastNet 的性能,最近更新了它,使用 NVIDIA Data Loading Library ( DALI )將數(shù)據(jù)攝入 GPU ,進(jìn)一步加快了洞察時(shí)間。
在基本指揮平臺(tái)上使用 Modulus 提高可擴(kuò)展性
當(dāng)在一個(gè)可以擴(kuò)展到幾個(gè)基于 GPU 的系統(tǒng)的環(huán)境中運(yùn)行時(shí), Modulus 的全部功能就會(huì)釋放出來。沒有比基本命令平臺(tái)更好的方法來運(yùn)行像 Modulus 這樣的高度可擴(kuò)展平臺(tái)來訓(xùn)練像 FourCastNet 這樣的大型模型。
為了運(yùn)行這些示例,我們將稍微修改過的 Modulus NGC container 版本上傳到了一個(gè)基本指揮平臺(tái)組織,該組織可以訪問由 NVIDIA DGX A100 系統(tǒng)組成的加速計(jì)算環(huán)境。我們將 1TB 的 ERA5 數(shù)據(jù)集上傳到同一環(huán)境中的工作空間。
為了支持協(xié)調(diào)的多實(shí)例工作負(fù)載, Base Command Platform 集成了一個(gè)名為 bcprun 的工具。bcprun通過抽象機(jī)器學(xué)習(xí)( ML )從業(yè)者的復(fù)雜性并消除工作負(fù)載容器(如mpirun)中對(duì)額外軟件的需求,簡(jiǎn)化了多實(shí)例工作負(fù)載部署。它還為最初為 HPC 調(diào)度器(如 Slurm )編寫的應(yīng)用程序提供了一個(gè)更容易的入門路徑。
以下代碼示例顯示了 FourCastNet 在 Base Command Platform 上的單實(shí)例作業(yè)啟動(dòng):
ngc batch run --name "bcp-dali.fcn.training.ml-model.modulus" --total-runtime 12H --org org-name --ace ace-name --instance dgxa100.80g.8.norm --workspace ERA5_test_21Vars:/era5/ngc_era5_data/:RO --result /results --image "nvcr.io/org-name/team-name/modulus:22.09-examples_0.4" --commandline " set -x && cd /examples/fourcastnet/ && ln -s /era5/stats . && python fcn_era5.py custom.train_dataset.kind=dali custom.num_workers.grid=1 training.max_steps=50000 training.print_stats_freq=500 network_dir=/results/network_checkpoint "
要擴(kuò)展到兩個(gè) NVIDIA DGX A100 八個(gè) GPU 實(shí)例(共 16 個(gè)),請(qǐng)使用以下命令(在 bold 中突出顯示更改):
ngc batch run --name "bcp-dali.fcn.training.ml-model.modulus" --total-runtime 12H --org org-name --ace ace-name --replicas "2" --array-type "PYTORCH" --instance dgxa100.80g.8.norm --workspace ERA5_test_21Vars:/era5/ngc_era5_data/:RO --result /results --image "nvcr.io/org-name/team-name/modulus:22.09-examples_0.4" --commandline " set -x && cd /examples/fourcastnet/ && mkdir -p /results/network_checkpoint && ln -s /era5/stats . && bcprun --nnodes $NGC_ARRAY_SIZE --npernode $NGC_GPUS_PER_NODE --cmd ' python fcn_era5.py custom.train_dataset.kind=dali custom.num_workers.grid=1 training.max_steps=50000 training.print_stats_freq=500 network_dir=/results/network_checkpoint ' "
bcprun的添加以及添加的參數(shù)確保指定的命令(來自--cmd參數(shù))在為作業(yè)創(chuàng)建的每個(gè)副本上運(yùn)行(如--replicas和--nnodes參數(shù)所指定)。--npernode參數(shù)確保在每個(gè)實(shí)例上為該實(shí)例中的每個(gè) GPU 運(yùn)行一個(gè)進(jìn)程。這導(dǎo)致此作業(yè)總共啟動(dòng)了 16 個(gè)進(jìn)程(每個(gè)復(fù)制副本中有 8 個(gè),總共兩個(gè)復(fù)制副本)。要擴(kuò)展到使用四個(gè)實(shí)例,請(qǐng)將--replicas參數(shù)設(shè)置為四個(gè)而不是兩個(gè)。
基本命令平臺(tái)不僅為 ML 從業(yè)者和管理員提供了易用性,而且證明了已經(jīng)實(shí)現(xiàn)了最高性能。 NVIDIA Selene supercomputer 與 Modulus 運(yùn)行 FourCastNet 訓(xùn)練進(jìn)行比較。
在 Selene 上測(cè)試了工作負(fù)載后,我們?cè)诨局笓]平臺(tái)部署上無縫復(fù)制了工作負(fù)載,并在兩個(gè)環(huán)境之間獲得了幾乎相同的結(jié)果。這一結(jié)果有力地證明,基本指揮平臺(tái)可以支持企業(yè)和科學(xué)計(jì)算用例中客戶最苛刻的性能要求。
圖 2 :在不同 GPU 數(shù)量下, NVIDIA Selene 超級(jí)計(jì)算機(jī)和基本命令平臺(tái)部署之間的 Modulus FourCastNet 性能比較(在 GPU 數(shù)量上同時(shí)進(jìn)行更好)
對(duì)開發(fā)者 Kaustubh Tangsali 的采訪
為了了解更多關(guān)于在 Base Command Platform 上使用 NVIDIA Modulus 的經(jīng)驗(yàn),我們采訪了 Modulus 團(tuán)隊(duì)的開發(fā)人員 Kaustubh Tangsali 。 Kaustubh 領(lǐng)導(dǎo)了在基本指揮平臺(tái)上運(yùn)行 FourCastNet 和其他幾個(gè)軟件示例的調(diào)查。
簡(jiǎn)要描述您的行業(yè)背景和經(jīng)驗(yàn)。
我主要在軟件行業(yè)工作,應(yīng)用于模擬和計(jì)算流體動(dòng)力學(xué)。我致力于 Modulus 平臺(tái)的開發(fā),這是一個(gè)領(lǐng)域?qū)<液腿斯ぶ悄軓臉I(yè)者開發(fā)物理 ML 模型的框架。我曾與 NVIDIA Thermal 團(tuán)隊(duì)等內(nèi)部合作伙伴密切合作,使用 Modulus 設(shè)計(jì)散熱器,還與幾個(gè)外部合作伙伴合作,使用 Modulus 加快工作流程。
您在基礎(chǔ)指揮平臺(tái)上使用 Modulus 工作了多長時(shí)間?
自 2020 年年中以來,我一直在基地指揮平臺(tái)上使用 Modulus 。
在基地指揮平臺(tái)上,日常使用是什么樣子的?您的開發(fā)周期是什么樣子的?
在我對(duì)代碼或模型進(jìn)行了一些本地測(cè)試后,我通常會(huì)將代碼安裝在基本命令平臺(tái)工作區(qū)中,然后使用 NGC web 界面或僅使用命令行界面( CLI )啟動(dòng)作業(yè)。 Jupyter 接口非常適合早期調(diào)試。當(dāng)模型運(yùn)行到完成時(shí),我下載檢查點(diǎn)和結(jié)果以進(jìn)行進(jìn)一步分析。在運(yùn)行時(shí),我還使用日志功能和遙測(cè)技術(shù)來監(jiān)視作業(yè)的狀態(tài)。
基本指揮平臺(tái)環(huán)境與您使用過的其他環(huán)境相比如何?
基本指揮平臺(tái)的 web 界面是我覺得有用的東西。監(jiān)視作業(yè)、查看用于啟動(dòng)作業(yè)的命令、克隆作業(yè)以及使用不同的實(shí)例類型等功能都很容易。我認(rèn)為獲得最新和最好的 NVIDIA 硬件是一大優(yōu)勢(shì)。
對(duì)于剛開始使用基地指揮平臺(tái)的人,你有什么建議嗎?
NVIDIA Base Command Platform User Guide 有很好的文檔記錄,涵蓋了數(shù)據(jù)科學(xué)家可能遇到的許多常見用例,包括單 GPU 、多[Z1K1’和多實(shí)例作業(yè)的命令示例。正如我前面提到的,在擴(kuò)展作業(yè)之前,我喜歡在開發(fā)的早期階段利用運(yùn)行作業(yè)的交互式特性,CLI會(huì)對(duì)其進(jìn)行優(yōu)化。
總結(jié)
NVIDIA Modulus 等尖端數(shù)字孿生技術(shù)依靠強(qiáng)大的計(jì)算環(huán)境不斷進(jìn)步?;局笓]平臺(tái)在一組易于使用的界面中利用 NVIDIA GPU 的強(qiáng)大功能,繼續(xù) NVIDIA 的使命,即讓高級(jí)軟件功能廣泛可訪問,以解決重要問題。
-
NVIDIA
+關(guān)注
關(guān)注
14文章
5076瀏覽量
103728 -
AI
+關(guān)注
關(guān)注
87文章
31536瀏覽量
270344 -
Base
+關(guān)注
關(guān)注
0文章
11瀏覽量
8732
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論