99精品在线观看-99精品在线免费观看-99精品在线视频观看-99精品这里只有精品高清视频-99九九精品国产高清自在线

x

CUDA模擬器來了!AMD、英特爾擺脫英偉達束縛之利器

2024-01-04 12:08:28 EETOP
點擊關注->創芯網公眾號,后臺告知EETOP論壇用戶名,獎勵200信元
模擬/仿真(emulation不僅僅是最真誠的奉承形式。這也是您如何開始采用新的計算引擎或將整個軟件堆棧從一個平臺移動到具有不同架構的另一個平臺的方式。仿真總是會帶來某種形式的性能影響,但如果您足夠聰明,它可以是適度的,并且是對實際將代碼從一個計算引擎移植到另一個計算引擎時節省的時間和精力的公平補償。

現在,CPU 既有矢量數學單元,也有矩陣數學單元,而 GPU 計算引擎的短缺又無法滿足生成式人工智能熱潮帶來的巨大需求,因此,毫無疑問,人們不僅需要CUDA 并行編程環境(Nvidia 將其作為 GPU 計算平臺的核心)的替代品,還需要在任何可以進行矢量或矩陣數學運算的設備上運行 CUDA 代碼。AMD的 HIP(其 ROCm 堆棧的一部分)和英特爾的SYCL(其 oneAPI 的核心)等替代性并行(在特性和功能方面)編程環境可以幫助CUDA 程序員將其知識應用到新設備上,這非常好。但是,在代碼的某些部分還存在很多問題,而且還沒有一個通用的模擬器可以將CUDA 轉換到任何 GPUCPU。

我們在 GPUCPU矢量/矩陣計算方面需要的是類似 QuickTransit 模擬器的東西,它是由曼徹斯特大學一個聰明的技術團隊創造的,經過四年的開發,于 2004 年由一家名為Transitive 的公司作為商業產品推出。

你們中的許多人都在不知不覺中使用過 QuickTransit。超級計算機制造商 SGI 在從MIPS 轉向 Itanium 架構的過程中率先采用了這種模擬器,蘋果公司也緊隨其后,在其客戶端計算機從 PowerPC 轉向英特爾酷睿處理器的過程中,將自己的 "Rosetta "仿真環境建立在 QuickTransit 的基礎上。IBM于 2008 年收購了 Transitive 公司,但由于放開它太危險了,所以基本上沒有投入使用。(Big Blue公司確實利用該技術在其 Power iron 上為Linux 提供了 X86 運行環境,但在 2012 年停止了對該技術的支持)。

雖然我們沒有針對 GPU 的QuickTransit,但我們確實有一個由佐治亞理工的研究人員和首爾國立大學的研究人員共同開發的名為CuPBoP "Cuda for Parallelized and Broad-range Processors"(針對并行化和寬范圍處理器的 Cuda)的東西,它可以將 CUDA 內核自動移植到LLVM 編譯器堆棧上運行,并在 GPUCPU 上執行。(有趣的是,LLVM 的創建者之一Chris Lattner 是模塊化人工智能公司(Modular AI)的首席執行官,該公司正在創建一種名為 Mojo 的新編程語言,在更高層次上為跨多種設備的人工智能應用提供一種可移植性)。這個 CuPBoP 框架在概念上有點像QuickTransit,但又完全不同。

CuPBoP 框架是在 2022 年 6 月發表的一篇論文中介紹的該框架的源代碼可在 GitHub 上找到。CuPBoP 本周引起了我們的注意,佐治亞理工學院的研究人員發布了一種名為 CuPBoP-AMD 的框架變體,該變體經過調整可在 AMD GPU 上工作,并提供了ROCm 中 AMD HIP 環境的替代方案,可將 Nvidia CUDA 代碼移植到AMD GPU。很多人都在想,現在AMD 正在推出其“Antares”MI300X 和MI300A 計算引擎,它們可以與Nvidia Hopper H100 和 H200 設備正面交鋒了。


CuPBoP-AMD論文鏈接:


https://dl.acm.org/doi/pdf/10.1145/3624062.3624185

AMD英特爾談論移植或仿真 CUDA 應用程序時,佐治亞理工的團隊是這樣看待在丹佛 SC23 超級計算大會上發表的后一篇論文的:

"英特爾有一個名為 SYCLomatic 的數據并行C++ (DPC++) 庫,用于將 CUDA 轉換為 SYCL,該庫在ROCM 4.5.1 中支持 AMD GPU 的運行時,但在撰寫本文時,該庫還處于測試模式,沒有完整的功能支持。AMD 利用HIPIFY 將 CUDA 轉換為 HIP。不過,HIPIFY并不考慮紋理內存中的設備側模板參數和多個 CUDA 頭文件".cuh"。因此,HIPIFY需要開發人員手動操作。在大型 CUDA 程序庫中,開發人員的手動操作可能非常麻煩,而這正是 CuPBoP 框架要解決的問題。CuPBoP是一個允許在非英偉達設備上執行 CUDA 的框架"。

CuPBoP 的部分訣竅在于使用 LLVM 框架及其Clang 編譯器,它可以將 Nvidia CUDA 和 AMD HIP 程序編譯成標準的中間表示(IR)格式,然后再將其編譯成 AMD GPU 的二進制可執行文件。CuPBoP 編譯流水線如下所示:

圖片


CuPBoP 框架創建兩個 IR 文件,一個用于內核代碼,一個用于主機代碼,并且正是在這個 IR 級別完成對AMD GPU 的轉換,而不是在更高級別上完成轉換宏和單獨的頭文件AMD的HIP工具有些麻煩。

目前,CuBPoP 框架僅支持Rodinia Benchmark中使用的 CUDA 功能,Rodinia Benchmark 是弗吉尼亞大學創建的一套測試,用于測試 2009 年首次亮相的當前和新興技術,當時 GPU 剛剛開始使用他們進入數據中心的方式。Rodinia 應用程序和內核涵蓋數據挖掘、生物信息學、物理模擬、模式識別、圖像處理和圖形處理算法——高級架構的創建是為了更好地解決這些問題。

以下是 CuPBoP 框架的CuPBoP-AMD 變體如何與 ROCm 堆棧中的 AMD HIPIFY 工具進行對比:

圖片

就已轉換為在 AMD GPU 上運行的CUDA 代碼的執行而言,CuPBoP-AMD 的性能看起來與 HIP 沒有區別。當然,我們很想看看被翻譯后的 CUDA 代碼與在Nvidia A100、H100 和 H200 GPU 上本地運行的情況有何不同。研究人員表示,CuPBoP-AMD 仍在進行中,需要啟用更多 Rodinia 基準功能。這始終是模擬器和翻譯器的問題:他們總是在追趕。但是,話又說回來,它們讓新平臺實際上能夠更快地迎頭趕上。

本文由EETOP編譯自nextplatform


關鍵詞: CUDA CUDA模擬器 QuickTransit CuPBoP

  • EETOP 官方微信

  • 創芯大講堂 在線教育

  • 半導體創芯網 快訊

全部評論

主站蜘蛛池模板: 久久ri精品高清一区二区三区| 特级aav毛片日本免费视频| 久久精品全国免费观看国产| 天天色国产| 亚洲国产精品自产拍在线播放| 18成人在线观看| 91高清国产视频| a级毛片免费在线观看| 一级爱一级做a性视频| 久久国产精品一区二区三区| 日本一线a视频免费观看| 日韩精品久久久毛片一区二区 | 美国一级毛片oo| 韩国三级欧美三级国产三级| 91国内视频在线观看| 调教小雪| japanese无码中文字幕| 99在线精品国产不卡在线观看| 国产v亚洲v欧美v专区| 国产精品成人一区二区不卡| 国产麻豆精品| 国产精品视频1区| 国产成人精品免费视频大| 国产不卡a| 成人在线日韩| a级成人毛片久久| 激情在线观看视频免费的| 精品免费视频| 高清无遮挡在线观看| 草逼免费看| 国产高清免费午夜在线视频| 国产成人精彩在线视频50| 国产一级特黄aa级特黄裸毛片| 国产三级91| 欧美一级在线观看视频| 男人狂躁女人下面视频免费看 | 国产成人深夜福利短视频99| 国产自愉自愉全免费高清| 国产一区二区三区四区五区六区 | 爱爱视频在线播放| 思思久久q6热在精品国产|