Jonathan Bentz – NVIDIA 技術博客 http://www.open-lab.net/zh-cn/blog 閱讀開發者創建的最新技術信息、頭條新聞 和內容。 Thu, 10 Jul 2025 06:45:06 +0000 zh-CN hourly 1 196178272 先進的 NVIDIA CUDA 內核優化技術:手寫 PTX http://www.open-lab.net/zh-cn/blog/advanced-nvidia-cuda-kernel-optimization-techniques-handwritten-ptx/ Wed, 02 Jul 2025 06:42:30 +0000 http://www.open-lab.net/zh-cn/blog/?p=14547 Continued]]> 隨著加速計算不斷提升 AI 和科學計算各個領域的應用程序性能,人們對 GPU 優化技術的興趣也越來越濃厚,以確保應用程序獲得盡可能好的性能。作為應用程序開發者,有很多方法可以對軟件堆棧上下進行 GPU 編程。在本文中,我們將介紹堆棧的一些不同級別,并深入探討最低級別:手寫并行線程執行 (PTX) 代碼。 現在,您無需編寫特定于 GPU 的代碼,即可使用 GPU 完成大量工作。庫開發者和軟件工程師已經為您完成了底層工作。例如,您可以在堆棧中進行高級工作,使用藍圖構建完整的 AI 工作流。或者,您可以在 PyTorch 等框架中開發應用程序,您可以在其中指定模型、適當的 GPU 代碼和庫來自動執行程序。 您還可以使用全套 NVIDIA CUDA-X 庫開發應用程序,其中包括量子計算、數據處理、物理 AI、基因測序、邊緣計算、藥物研發等領域特定的庫。

Source

]]>
14547
NVIDIA Blackwell 和 NVIDIA CUDA 12.9 引入基于系列的架構特性 http://www.open-lab.net/zh-cn/blog/nvidia-blackwell-and-nvidia-cuda-12-9-introduce-family-specific-architecture-features/ Thu, 01 May 2025 07:01:52 +0000 http://www.open-lab.net/zh-cn/blog/?p=13844 Continued]]> 最早進入 NVIDIA GPU CUDA 平臺的架構設計決策之一是支持 GPU 代碼的向后兼容性。這種設計意味著,新 GPU 應該能夠運行為之前的 GPU 編寫的程序,而無需進行修改。它由 CUDA 的兩個基本特性完成: PTX 是面向 NVIDIA GPU 的虛擬 ISA。您可以將其想象成組裝代碼,但它不限于特定的物理芯片硬件架構,其設計足夠通用,可以與未來的 GPU 架構兼容。 自 NVIDIA 創建 CUDA 平臺使開發者能夠為 GPU 編寫通用程序以來,PTX 一直是 CUDA 不可或缺的一部分。為之前的 GPU 構建的 PTX 代碼可以由當前的驅動進行 JIT 編譯,并在當前的 GPU 上運行,無需修改。 舉個例子。這是一段簡單的代碼,可打印 GPU 名稱和計算能力,還可從 GPU 內核內部打印 hello。 當我們使用 CUDA 12.8…

Source

]]>
13844
NVIDIA cuPyNumeric 25.03 現已完全開源,支持 PIP 和 HDF5 http://www.open-lab.net/zh-cn/blog/nvidia-cupynumeric-25-03-now-fully-open-source-with-pip-and-hdf5-support/ Wed, 23 Apr 2025 05:49:32 +0000 http://www.open-lab.net/zh-cn/blog/?p=13614 Continued]]> NVIDIA cuPyNumeric 是一個庫,旨在為基于 Legate 框架構建的 NumPy 提供分布式和加速的插入式替換。它為多 GPU 和多節點 (MGMN) 加速計算帶來了零代碼更改擴展。 cuPyNumeric 25.03 是一次里程碑式的更新,為用戶和開發者引入了強大的新功能,并增強了可訪問性,詳情請參閱本文。 “借助 cuPyNumeric 25.03,NVIDIA 在 Apache 2 許可證下開源了支持 cuPyNumeric 的 Legate 框架和運行時層。現在,cuPyNumeric 的整個堆棧均在 Apache 2 許可證下提供。此舉符合 NVIDIA 對透明度、再現性和協作性的承諾。貢獻者現在可以毫無障礙地探索、審核、貢獻和擴展系統的任何組件。” cuPyNumeric 從一開始就支持通過 conda 進行安裝。現在,

Source

]]>
13614
了解 CUDA GPU 計算的匯編語言 PTX http://www.open-lab.net/zh-cn/blog/understanding-ptx-the-assembly-language-of-cuda-gpu-computing/ Wed, 12 Mar 2025 06:29:58 +0000 http://www.open-lab.net/zh-cn/blog/?p=13348 Continued]]> 并行線程執行(PTX)是一種虛擬機指令集架構,從一開始就是 CUDA 的一部分。您可以將 PTX 視為 NVIDIA CUDA GPU 計算平臺的匯編語言。 在本文中,我們將解釋這意味著什么,PTX 的用途,以及您需要了解哪些內容才能在您的應用中充分利用 CUDA。我們將首先介紹 CUDA 如何生成、存儲和加載最終在 GPU 上運行的代碼。然后,我們將展示 PTX 如何實現前向兼容性,以及如何使用 PTX 讓特定領域的編程語言和其他編程語言面向 CUDA。 指令集架構(ISA)是對處理器可以執行的指令、其格式、這些指令的行為以及二進制編碼的規范。每個處理器都有 ISA。例如,x86_64 是 CPU ISA。ARM64 是另一類。GPU 也具有 ISA。對于 NVIDIA GPU,對于不同世代的 GPU,甚至是一代內不同產品線的 GPU,ISA 可能會有所不同。

Source

]]>
13348
優化 CUDA C++ 編譯時間 http://www.open-lab.net/zh-cn/blog/optimizing-compile-times-for-cuda-c/ Mon, 10 Mar 2025 08:58:34 +0000 http://www.open-lab.net/zh-cn/blog/?p=13121 Continued]]> 在現代軟件開發中,時間是非常寶貴的資源,尤其是在編譯過程中。對于在大規模 GPU 加速應用程序上使用 CUDA C++的開發者而言,優化編譯時間可以顯著提高工作效率并簡化整個開發周期。 使用 編譯器進行離線編譯時,高效的編譯時間使您能夠快速構建代碼并保持勢頭。在使用 nvrtc 的即時 (JIT) 編譯環境中,最小化編譯時間有助于減少執行或運行時延遲,并提高應用程序性能。如果您在實時系統或交互式應用程序上工作,您將從盡可能快的編譯時間中受益匪淺。 理解編譯瓶頸的來源并不總是那么簡單。CUDA 編譯過程十分復雜,因為編譯器會對代碼執行各種優化和轉換,幾乎看不到代碼的哪些部分需要很長時間才能編譯。 例如,看似簡單的代碼行可能會觸發復雜的模板實例化,從而導致其他模板的遞歸擴展,進而消耗過多的編譯時間。如果不清楚幕后發生了什么,您就不知道編譯時間較長的根本原因是什么,

Source

]]>
13121
CUDA 工具包現已支持 NVIDIA Blackwell 架構 http://www.open-lab.net/zh-cn/blog/cuda-toolkit-12-8-delivers-nvidia-blackwell-support/ Fri, 31 Jan 2025 04:55:11 +0000 http://www.open-lab.net/zh-cn/blog/?p=12892 Continued]]> CUDA 工具包 的最新版本 (版本 12.8) 使用最新的 NVIDIA CPU 和 GPU,持續提升數據科學、AI、科學計算以及計算機圖形和模擬領域的加速計算性能。本文重點介紹了此版本包含的一些新功能和增強功能: CUDA 工具包 12.8 是該工具包的第一個版本,在整個開發者工具套件 (包括性能工具和分析器、庫和編譯器) 中支持 NVIDIA Blackwell 架構。Blackwell 由 208 億個晶體管構建而成,是 NVIDIA Hopper GPU 中晶體管數量的 2.5 倍以上,是迄今為止最大的 GPU。 Blackwell 支持的主要功能包括:Key Blackwell 如需詳細了解 NVIDIA Blackwell 的領先創新,請參閱 NVIDIA Blackwell 架構技術概覽。 借助 Blackwell,

Source

]]>
12892
人人超碰97caoporen国产