CUDA C++ – NVIDIA 技術博客
http://www.open-lab.net/zh-cn/blog
閱讀開發者創建的最新技術信息、頭條新聞 和內容。
Wed, 19 Mar 2025 08:40:49 +0000
zh-CN
hourly
1
196178272 -
通過降低指令緩存未命中率提高 GPU 性能
http://www.open-lab.net/zh-cn/blog/improving-gpu-performance-by-reducing-instruction-cache-misses-2/
Thu, 08 Aug 2024 02:25:26 +0000
http://www.open-lab.net/zh-cn/blog/?p=10885
Continued]]>
GPU 專為高速處理大量數據而設計。GPU 具有稱為流多處理器 (SM) 的大量計算資源,以及一系列可為其提供數據的設施:高帶寬內存、高大小數據緩存,以及在活躍的線程束用完時切換到其他線程束的能力,而不會產生任何開銷。 然而,數據乏現象可能仍會發生,許多代碼優化都集中在這個問題上。在某些情況下,SMs 不是數據乏,而是指令乏。本文介紹了對 GPU 工作負載的調查,該工作負載因指令緩存丟失而經歷了速度放慢。本文介紹了如何識別此瓶頸,以及消除瓶頸以提高性能的技術。 這項研究的起源是基因組學領域的應用程序,在該領域中,必須解決與將 DNA 樣本的小部分與參考基因組進行比對相關的許多小的獨立問題。背景是眾所周知的 Smith-Waterman 算法(但這本身對討論并不重要)。 在強大的 NVIDIA H100 Hopper GPU 上,擁有 114 個 SM…
Source
]]>
10885
-
通過 GPU 內存預取提高應用程序性能
http://www.open-lab.net/zh-cn/blog/boosting-application-performance-with-gpu-memory-prefetching/
Wed, 23 Mar 2022 06:09:00 +0000
http://www.open-lab.net/zh-cn/blog/?p=3450
Continued]]>
NVIDIA GPU 具有強大的計算能力,通常必須以高速傳輸數據才能部署這種能力。原則上這是可能的,因為 GPU 也有很高的內存帶寬,但有時他們需要你的幫助來飽和帶寬。 在本文中,我們將研究一種實現這一點的特定方法:預取。我們將解釋在什么情況下預取可以很好地工作,以及如何找出這些情況是否適用于您的工作負載。 NVIDIA GPU 從大規模并行中獲得力量。 32 個線程的許多扭曲可以放置在流式多處理器( SM )上,等待輪到它們執行。當一個 warp 因任何原因暫停時, warp 調度程序會以零開銷切換到另一個,確保 SM 始終有工作要做。 在高性能的 NVIDIA Ampere 架構 A100 GPU 上,多達 64 個活動翹板可以共享一個 SM ,每個都有自己的資源。除此之外, A100 還有 108 條短信,可以同時執行 warp 指令。
Source
]]>
3450
-
用 CUDA int128 實現高精度十進制算法
http://www.open-lab.net/zh-cn/blog/implementing-high-precision-decimal-arithmetic-with-cuda-int128/
Thu, 10 Feb 2022 02:37:00 +0000
http://www.open-lab.net/zh-cn/blog/?p=3040
Continued]]>
“事實太復雜了,除了近似,什么都不允許。 ” — 約翰·馮·諾依曼 計算的歷史已經證明,用計算機硬件實現的相對簡單的算法所能實現的是無限的。但計算機用有限大小的數字表示的“真相”基本上是近似的。正如大衛·戈德伯格所寫,“ 將無限多個實數壓縮成有限位數需要一個近似表示 。”浮點是實數最廣泛使用的表示形式,在許多處理器中都有實現,包括 GPU 。它之所以受歡迎,是因為它能夠代表一個大的動態范圍的價值觀,并權衡范圍和精度。 不幸的是,浮點的靈活性和范圍可能會在某些應用程序中造成麻煩,因為在固定范圍內的精度更為重要:想想美元和美分。二進制浮點數不能準確地代表每一個十進制值,它們的近似值和舍入可能會導致累積錯誤,例如,在會計計算中可能是不可接受的。此外,添加非常大和非常小的浮點數可能會導致截斷錯誤。由于這些原因,許多貨幣和會計計算都是使用定點十進制算法實現的,該算法存儲固定數量的小數位數。
Source
]]>
3040
人人超碰97caoporen国产