C++ – NVIDIA 技術博客 http://www.open-lab.net/zh-cn/blog 閱讀開發者創建的最新技術信息、頭條新聞 和內容。 Thu, 17 Jul 2025 07:16:20 +0000 zh-CN hourly 1 196178272 為 NVIDIA CUDA 內核融合提供 Python 中缺失的構建模塊 http://www.open-lab.net/zh-cn/blog/delivering-the-missing-building-blocks-for-nvidia-cuda-kernel-fusion-in-python/ Wed, 09 Jul 2025 07:13:22 +0000 http://www.open-lab.net/zh-cn/blog/?p=14658 Continued]]> CUB 和 Thrust 等 C++ 庫提供高級構建塊,使 NVIDIA CUDA 應用和庫開發者能夠編寫跨架構可移植的光速代碼。許多廣泛使用的項目 (例如 PyTorch、TensorFlow、XGBoost 和 RAPIDS) 都使用這些抽象來實現核心功能。 Python 中缺少相同的抽象。其中包括 CuPy 和 PyTorch 等高級數組和張量庫,以及 numba.cuda 等低級內核創作工具。但是,由于缺乏“基礎模組”,Python 庫開發者不得不使用 C++ 來實現自定義算法。 為 CUDA 核心計算庫 CUB 和 Thrust 提供 Python 接口。現在,您無需使用 C++ 或從頭開始編寫復雜的 CUDA 核函數,即可編寫跨不同 GPU 架構提供最佳性能的算法。 由兩個庫組成: 本文將介紹 庫。 為了說明 cuda.cccl 的功能,

Source

]]>
14658
利用 CUDA 圖形、Coroutines 和 GPU 工作流程加速藥物發現進程 http://www.open-lab.net/zh-cn/blog/optimizing-drug-discovery-with-cuda-graphs-coroutines-and-gpu-workflows/ Wed, 23 Oct 2024 05:28:03 +0000 http://www.open-lab.net/zh-cn/blog/?p=11700 Continued]]> 藥物研究需要快速、高效的模擬來預測分子如何相互作用,從而加速藥物研發。NVIDIA 高級開發者技術工程師 Jiqun Tu 和 Schrödinger Desmond 引擎技術負責人 Ellery Russell 將探索旨在加速分子動力學模擬的高級 GPU 優化技術。 在這場 NVIDIA GTC 2024 會議中,他們提出了提高工作負載效率和吞吐量的實用策略,為藥物研究人員提供了增強計算藥物研發的工具。這些策略基于現有的 CUDA 工作流,涵蓋了 CUDA Graphs、C++ coroutines 和 mapped memory 等創新技術,可克服擴展挑戰和瓶頸。 請關注我們,并獲取 會議的 PDF 文件 ,該文件為與會者提供切實可行的技術,以優化性能、最大限度地降低延遲,并充分利用 GPU 功能進行分子模擬。主題包括: CUDA 圖形:

Source

]]>
11700
如何使用 ISO C++ 標準并行性加速量化金融 http://www.open-lab.net/zh-cn/blog/how-to-accelerate-quantitative-finance-with-iso-c-standard-parallelism/ Wed, 06 Mar 2024 06:33:08 +0000 http://www.open-lab.net/zh-cn/blog/?p=9126 Continued]]> 量化金融庫是一種軟件包,包含適用于量化投資環境的數學、統計和最近的機器學習模型。它們包含一系列功能,通常為專有功能,用于支持評估、風險管理、組建和優化投資組合。 開發此類庫的金融公司必須在新功能的短期啟用和長期軟件工程考慮之間優先考慮有限的開發者資源。此外,合規、監管和風險管理的約束將對潛在的利潤和損失影響的任何代碼更改提供更嚴格的監督,而 C++標準并行性使舊代碼更具可持續性,并為 GPU 和 CPU 并行性做好準備。 本文展示了如何通過利用CPU和GPU的并行性,使用ISO C++標準重構一個簡單的Black-Scholes模型。同時,它還展示了如何重復使用原始實現中的大部分代碼。對于輔助參考或自行測試實施的代碼,請訪問NVIDIA/accelerated-quant-finance GitHub 庫。這種方法不僅節省了開發者的時間,而且提高了關鍵量化金融庫的性能,

Source

]]>
9126
使用模塊化、OpenUSD 加持的 Omniverse 版本加速 3D 工作流程 http://www.open-lab.net/zh-cn/blog/accelerate-3d-workflows-with-modular-openusd-powered-omniverse-release/ Tue, 08 Aug 2023 03:59:19 +0000 http://www.open-lab.net/zh-cn/blog/?p=7641 Continued]]> 最新的NVIDIA Omniverse版本可基于Omniverse Kit 105套件提供一系列令人振奮的新功能,使開發者能夠更加輕松地開始構建3D模擬工具和工作流。 基于通用場景描述(即OpenUSD)、NVIDIA RTX和AI技術打造的Omniverse使用戶能夠創建出先進實時3D模擬應用,用于工業數字化和AI感知場景。這個完全可組合的平臺可從工作站擴展到云,因此只需少量編碼工作就能構建先進、可擴展的解決方案。 在SIGGRAPH 2023上的NVIDIA主題演講中,NVIDIA首席執行官黃仁勛發布了ChatUSD和RunUSD。 ChatUSD 是一個大型語言模型(LLM)媒介,可使用文本生成Python-USD 代碼腳本和回答USD知識問題,有助于直接在Omniverse中簡化并加速USD 開發任務。 RunUSD是一個Cloud API,

Source

]]>
7641
調試混合 Python 和 C 語言堆棧 http://www.open-lab.net/zh-cn/blog/debugging-mixed-python-and-c-language-stack/ Sun, 23 Apr 2023 05:46:07 +0000 http://www.open-lab.net/zh-cn/blog/?p=6793 Continued]]> 調試很困難。跨多種語言調試尤其具有挑戰性,跨設備調試通常需要一個具有不同技能和專業知識的團隊來揭示潛在問題 然而,項目通常需要使用多種語言,以確保必要時的高性能、用戶友好的體驗以及可能的兼容性。不幸的是,沒有一種編程語言能夠提供上述所有功能,這就要求開發人員變得多才多藝。 這篇文章展示了RAPIDS該團隊著手調試多種編程語言,包括使用GDB以識別和解決死鎖。該團隊致力于設計加速和擴展數據科學解決方案的軟件。 這篇文章中的 bug 是RAPIDS 項目這一問題在 2019 年夏天得到了確認和解決。它涉及到一個包含多種編程語言的復雜堆棧,主要是 C 、 C ++和 Python ,以及CUDA對于 GPU 加速度 記錄這個歷史錯誤及其解決方案有幾個目的,包括: 這篇文章中的內容應該有助于你理解這些錯誤是如何表現出來的,以及如何在你自己的工作中解決類似的問題。

Source

]]>
6793
在 GPU 上使用大規模并行哈希圖實現性能最大化 http://www.open-lab.net/zh-cn/blog/maximizing-performance-with-massively-parallel-hash-maps-on-gpus/ Mon, 06 Mar 2023 04:32:14 +0000 http://www.open-lab.net/zh-cn/blog/?p=6412 Continued]]> 數十年的計算機科學史致力于設計有效存儲和檢索信息的解決方案。哈希圖(或哈希表)是一種流行的信息存儲數據結構,因為它對元素的插入和檢索具有攤銷、恒定的時間保證。 然而,盡管哈希圖很流行,但很少在 GPU 加速計算的上下文中討論哈希圖。雖然 GPU 以其大量線程和計算能力而聞名,但其極高的內存帶寬使許多數據結構(如哈希圖)得以加速。 這篇文章介紹了哈希圖的基本原理,以及它們的內存訪問模式如何使其非常適合 GPU 加速。我們將介紹 cuCollections ,這是一個用于并發數據結構(包括哈希圖)的新的開源 CUDA C ++庫。 最后,如果您對在應用程序中使用 GPU 加速哈希映射感興趣,我們將提供多列關系連接算法的示例實現。 RAPIDS cuDF 集成了 GPU 哈希圖,這有助于實現 數據科學工作負載的驚人加速 。要了解更多信息,請參閱 GitHub 上的 rapidsai/

Source

]]>
6412
使用 Python 和 C 快速構建 AI 流應用程序++ http://www.open-lab.net/zh-cn/blog/rapidly-build-ai-streaming-apps-with-python-and-c/ Mon, 09 Jan 2023 02:59:00 +0000 http://www.open-lab.net/zh-cn/blog/?p=6050 Continued]]> 邊緣傳感器流的 AI 處理的計算需求越來越高。邊緣設備必須跟上高速率的傳入數據流、處理、顯示、存檔和流結果,或實時關閉控制循環。這需要能夠進行高性能計算的強大、高效、準確的硬件和軟件解決方案。 邊緣設備還必須快速安全地將數據傳輸到其他邊緣設備、預數據中心或云,以存儲和分析接收到的數據。先進的邊緣 AI 處理解決方案可快速處理大量傳感器數據,并實時產生可操作的見解。 NVIDIA Holoscan SDK v0.4 現在為邊緣的流式 AI 應用程序提供了更高效的處理。開發人員可以使用包含加速庫、預訓練 AI 模型和參考應用程序的 SDK ,使用 Python 和 C ++構建自己的流式應用程序。 Holoscan 最初用于醫療 AI 用例,現在已準備好在多個行業中應用更廣泛的應用,以實現邊緣的高性能計算。 新的 Holoscan SDK v0.4 功能包括: 此外,

Source

]]>
6050
使用 NVIDIA 數學庫加速 GPU 應用程序 http://www.open-lab.net/zh-cn/blog/accelerating-gpu-applications-with-nvidia-math-libraries/ Tue, 26 Jul 2022 06:05:00 +0000 http://www.open-lab.net/zh-cn/blog/?p=4694 Continued]]> 加速 GPU 應用程序的主要方法有三種:編譯器指令、編程語言和預編程庫。編譯器指令,例如 OpenACC a 允許您順利地將代碼移植到 GPU 以使用基于指令的編程模型進行加速。雖然它易于使用,但在某些情況下可能無法提供最佳性能。 編程語言,例如 CUDA C 和 C ++ 在加速應用程序時為您提供更大的靈活性,但用戶也有責任編寫代碼,利用新的硬件功能在最新的硬件上實現最佳性能。這就是預編程庫填補空白的地方。 除了增強代碼的可重用性外,還可以使用 NVIDIA 數學庫 優化以充分利用 GPU 硬件,獲得最大的性能增益。如果您正在尋找一種簡單的方法來加速應用程序,請繼續閱讀,了解如何使用庫來提高應用程序的性能。 NVIDIA 數學庫,作為 CUDA 工具包 和 高性能計算( HPC )軟件開發工具包( SDK ) ,提供各種計算密集型應用程序中遇到的函數的高質量實現。

Source

]]>
4694
使用新的 Nsight Compute 改進導航和性能可視化 http://www.open-lab.net/zh-cn/blog/improve-guidance-and-performance-visualization-with-the-new-nsight-compute/ Tue, 31 May 2022 07:29:00 +0000 http://www.open-lab.net/zh-cn/blog/?p=4236 Continued]]> NVIDIA Nsight Compute 是一款用于 CUDA 應用程序的交互式內核分析器。它通過用戶界面和命令行工具提供詳細的性能指標和 API 調試。 Nsight Compute 2022.2 包含擴展支持的環境和工作流程的功能,用于 CUDA 內核評測和優化。 立即下載。>> 以下概述了 Nsight Compute 2022.2 的功能亮點。 使用新的 NVIDIA OptiX acceleration structure viewer ,用戶可以在啟動光線跟蹤管道之前檢查他們構建的結構。加速結構描述渲染場景的幾何體,用于光線跟蹤交點計算。用戶創建這些加速結構, OptiX 將其轉換為內部數據結構。有時,用戶創建的描述很容易出錯,很難理解渲染結果為什么不符合預期,或者是什么限制了性能。 有了這個新功能,用戶可以在三維可視化工具中瀏覽它們,

Source

]]>
4236
在 Nvidia MATX 中用 Python 語法加速 C ++的數值計算 http://www.open-lab.net/zh-cn/blog/speeding-up-numerical-computing-in-c-with-a-python-like-syntax-in-nvidia-matx/ Thu, 24 Feb 2022 07:04:00 +0000 http://www.open-lab.net/zh-cn/blog/?p=3136 Continued]]> Rob Smallshire 曾經說過,“你可以在 C ++中編寫更快的代碼,但是在 Python 中編寫代碼更快。”自從它發布超過十年前, CUDA 已經給 C 和 C ++程序員提供了在 Nvidia GPU 上最大化其代碼性能的能力。 最近, CuPy 和 PyTorch 等庫允許解釋語言的開發人員利用其他語言優化的 CUDA 庫的速度。這些解釋語言有許多優秀的特性,包括易于閱讀的語法、自動內存管理和所有函數的通用類型。 然而,有時擁有這些功能意味著由于內存管理和其他超出您控制范圍的因素而付出性能代價。為了節省開發時間,性能的降低通常是值得的。不過,當性能成為一個問題時,它最終可能需要重寫應用程序的某些部分。 如果你仍然可以使用 C ++來獲得最大的性能,同時仍然能從解釋語言中獲得所有好處呢? Matx 是一個實驗性的 GPU 加速的數值計算 C ++庫,

Source

]]>
3136
NVIDIA GTC : Nsight 開發工具的完整概述 http://www.open-lab.net/zh-cn/blog/nvidia-gtc-a-complete-overview-of-nsight-developer-tools/ Wed, 10 Nov 2021 06:43:00 +0000 http://www.open-lab.net/zh-cn/blog/?p=2309 Continued]]> Nsight 開發工具套件提供深入的跟蹤、調試、評測和其他分析,以優化跨 NVIDIA GPU 和 CPU 的復雜計算應用程序,包括 x86 、 Arm 和 Power 體系結構。 NVIDIA Nsight Systems 是一種性能分析工具,旨在可視化、分析和優化編程模型,并在 CPU 和 GPU 的任何數量或大小上進行有效調整以實現規模擴展;從工作站到超級計算機。 Nsight Systems 2021 . 5 的亮點包括: 了解更多 和 下載 >> NVIDIA Nsight Compute 2021.3 發布了用于測量和建模占用率、源代碼和匯編代碼相關性的新功能,以及用于識別訪問緩存造成的瓶頸的分層屋頂線模型。 主要特點: 還有其他改進,包括更多可配置的基線比較、從 CLI 訪問源代碼級信息以及其他 SSH 功能。 下載 >>…

Source

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