Jeff Larkin – NVIDIA 技術博客 http://www.open-lab.net/zh-cn/blog 閱讀開發者創建的最新技術信息、頭條新聞 和內容。 Fri, 09 Aug 2024 03:04:05 +0000 zh-CN hourly 1 196178272 使用 ISO C++語言并行在 GPU 上進行利潤和損失建模 http://www.open-lab.net/zh-cn/blog/profit-and-loss-modeling-on-gpus-with-iso-c-language-parallelism/ Wed, 07 Aug 2024 02:53:36 +0000 http://www.open-lab.net/zh-cn/blog/?p=10906 Continued]]> 上一篇文章“How to Accelerate Quantitative Finance with ISO C++ Standard Parallelism”(如何使用 ISO C++標準并行機制加速量化金融) 演示了如何使用 ISO C++標準并行機制和NVIDIA accelerated-quant-finance GitHub 庫中找到的代碼編寫 Black-Scholes 模擬。這種方法使您能夠高效地編寫簡潔且可移植的代碼。 僅使用標準 C++,就可以編寫可在現代多核 CPU 或 GPU 上并行運行的應用程序,而無需進行修改。本文從之前開發的 Black-Scholes 并行代碼開始,構建了一個更復雜的模型,并對其進行了優化,以利用 GPU 的優勢,同時保留標準 C++。 交易已實現波動性的熱門策略是對期權持倉進行增量套期保值。根據 Black-Scholes 的假設,

Source

]]>
10906
如何使用 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
借助 NVIDIA Grace Hopper 超級芯片簡化 HPC 的 GPU 編程 http://www.open-lab.net/zh-cn/blog/simplifying-gpu-programming-for-hpc-with-the-nvidia-grace-hopper-superchip/ Mon, 13 Nov 2023 06:07:54 +0000 http://www.open-lab.net/zh-cn/blog/?p=8229 Continued]]> NVIDIA RTX GPU 中的 NVIDIA Grace Hopper 超級芯片 系統為開發者處理 GPU 編程的方式帶來了一些戲劇性的變化。最值得注意的是,CPU 和 GPU 顯存之間的雙向、高帶寬和緩存一致性連接意味著用戶可以在使用單個統一地址空間的同時為這兩個處理器開發應用程序。 每個處理器都保留自己的物理內存,該內存的設計具有與最適合每個處理器的工作負載相匹配的帶寬、延遲和容量特性。針對現有的獨立顯存 GPU 系統編寫的代碼將繼續保持高性能運行,而無需針對新的 NVIDIA Grace Hopper 架構進行修改。 我們最近的博文 借助異構內存管理簡化 GPU 應用程序開發 詳細介紹了單地址空間為開發者帶來的一些優勢,以及它在通過 PCIe 連接至 x86_64 CPU 的 NVIDIA GPU 系統上的工作原理。所有應用程序線程(GPU 或…

Source

]]>
8229
用 Fortran 標準并行編程實現 GPU 加速 http://www.open-lab.net/zh-cn/blog/using-fortran-standard-parallel-programming-for-gpu-acceleration/ Fri, 27 May 2022 07:25:00 +0000 http://www.open-lab.net/zh-cn/blog/?p=4230 Continued]]> 這是標準并行編程系列的第四篇文章,旨在指導開發人員在標準語言中使用并行來加速計算的優勢: 標準語言已經開始添加編譯器可用于加速 GPU 和 CPU 并行編程的功能,例如 Fortran 中的循環和數組數學內部函數。 使用標準語言特性有許多優點,主要優點是未來的可驗證性。由于 Fortran 的是一種標準語言功能,因此將來失去支持的可能性很小。 這個特性在初始代碼開發中使用起來也相對簡單,并且增加了可移植性和并行性。在初始代碼開發中使用有助于鼓勵您在編寫和實現循環時從一開始就考慮并行性。 對于初始代碼開發,是添加 GPU 支持的好方法,無需學習指令。然而,即使是已經通過使用 OpenACC 和 OpenMP 等指令進行 GPU 加速的代碼,也可以從重構到標準并行性中獲益,原因如下: POT3D 是一個 Fortran 代碼,它使用表面場觀測值作為輸入,

Source

]]>
4230
多個 GPU 標準 C ++并行編程,第 2 部分 http://www.open-lab.net/zh-cn/blog/multi-gpu-programming-with-standard-parallel-c-part-2/ Mon, 18 Apr 2022 03:27:00 +0000 http://www.open-lab.net/zh-cn/blog/?p=3735 Continued]]> 這是 標準并行編程 系列的第三篇文章,講述在標準語言中使用并行性來加速計算的優點。 在第 1 部分中,我們解釋了: 在這篇文章中,我們繼續優化 ISOC ++算法的性能,然后使用 MPI 來跨多個 GPU 來縮放應用。 期望 CPU 到 GPU 端口的性能低于專用 HPC 代碼的性能似乎很自然。畢竟,您受到軟件體系結構、已建立的 API 的限制,以及考慮用戶群期望的復雜額外功能的需要。不僅如此, C ++標準并行化的簡單編程模型允許比專用語言(如 CUDA )更少的手動微調。 在現實中,通常可以將這種性能損失控制和限制到可以忽略不計的程度。關鍵是分析各個代碼部分的性能指標,消除不能反映軟件框架實際需求的性能瓶頸。 一個好的做法是為數值算法的核心組件維護一個單獨的原理證明代碼。這種方法的性能可以更自由地優化,并與完整、復雜的軟件框架(如 Palabos…

Source

]]>
3735
多個 GPU 標準 C ++并行編程,第 1 部分 http://www.open-lab.net/zh-cn/blog/multi-gpu-programming-with-standard-parallel-c-part-1/ Mon, 18 Apr 2022 03:12:00 +0000 http://www.open-lab.net/zh-cn/blog/?p=3732 Continued]]> 這是 標準并行編程 系列的第二篇文章,講述在標準語言中使用并行性來加速計算的優點。 將應用程序移植到 GPU 的難度因情況而異。在最佳情況下,您可以通過調用現有的 GPU 優化庫來加速關鍵代碼部分。例如,當模擬軟件的構建塊由 BLAS 線性代數函數組成時,可以使用 cuBLAS 對其進行加速。 但在許多代碼中,你不能四處做一些手工工作。在這些場景中,您可以考慮使用特定于域的語言,例如 CUDA 來針對特定的加速器。或者,您可以使用基于指令的方法,如 OpenMP 或 OpenACC ,以保持原始語言,并使用相同的代碼針對主機和各種類型的設備。 隨著本機形式的并行在C++、FORTRAN和 Python 編程語言的現代版本中的出現,現在可以利用類似的高級方法而不需要語言擴展。 我們的重點是 C ++語言,它作為 C ++ 17 標準,

Source

]]>
3732
用標準語言并行性開發加速代碼 http://www.open-lab.net/zh-cn/blog/developing-accelerated-code-with-standard-language-parallelism/ Wed, 12 Jan 2022 05:03:00 +0000 http://www.open-lab.net/zh-cn/blog/?p=2768 Continued]]> NVIDIA 平臺是最成熟、最完整的加速計算平臺。在這篇文章中,我將介紹最簡單、最高效、最可移植的加速計算方法。有三種編程方法 GPU (圖 1 )。 CUDA C ++ Fortran 是 NVIDIA 可以展示新硬件和軟件創新的創新平臺,在這里,您可以調整應用程序以在 NVIDIA GPU 上實現最佳性能。許多開發人員認為這就是 NVIDIA 希望每個人為 GPU 編程的方式。 相反,我們預計,開發者首次來到NVIDIA 平臺將使用標準的并行編程語言,如 ISO C ++、 ISO Fortran 和 Python 。在這篇文章中,我強調了使用這種方法進行并行編程的一些成功,以證明進入NVIDIA CUDA 生態系統的最有成效的途徑。 NVIDIA 戰略的基礎是提供一套豐富、成熟的 SDK 和庫,在這些數據庫上可以構建應用程序。

Source

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