性能優化 – NVIDIA 技術博客 http://www.open-lab.net/zh-cn/blog 閱讀開發者創建的最新技術信息、頭條新聞 和內容。 Fri, 28 Feb 2025 06:18:45 +0000 zh-CN hourly 1 196178272 借助 NVIDIA KvikIO 實現高性能遠程 IO http://www.open-lab.net/zh-cn/blog/high-performance-remote-io-with-nvidia-kvikio/ Thu, 27 Feb 2025 06:02:16 +0000 http://www.open-lab.net/zh-cn/blog/?p=12989 Continued]]> 處理大量數據的工作負載 (尤其是在云端運行的工作負載) 通常會使用對象存儲服務 (S3、Google Cloud Storage、Azure Blob Storage 等) 作為數據源。對象存儲服務可以存儲和提供海量數據,但要想獲得最佳性能,可能需要根據遠程對象存儲的行為方式調整工作負載。本文適用于希望盡快將數據讀或寫到對象存儲,以便 IO 不會限制工作負載的 RAPIDS 用戶。 您對本地文件系統行為方式的一些了解可轉換為遠程對象存儲,但它們本質上是不同的。這兩者之間的最大區別 (至少對于數據分析工作負載而言) 可能在于,對象存儲上的讀取和寫入操作具有越來越高的可變延遲。每個存儲服務 (AWS、Azure) 都有自己的一套最佳實踐和性能指南。在這里,我們將提供一些專注于數據分析工作負載的一般指南。 將計算節點放置在存儲服務附近 (理想情況下,應位于同一云區域),

Source

]]>
12989
掌握 cudf.pandas Profiler 實現 GPU 加速 http://www.open-lab.net/zh-cn/blog/mastering-the-cudf-pandas-profiler-for-gpu-acceleration/ Thu, 30 Jan 2025 05:01:33 +0000 http://www.open-lab.net/zh-cn/blog/?p=12898 Continued]]> 在 Python 數據科學領域,pandas 長期以來一直是直觀數據操作和分析的首選庫。但是,隨著數據量的增長,CPU 受限的 pandas 工作流可能會成為瓶頸。 這就是 cuDF 及其 pandas 加速器模式 的用武之地。此模式可盡可能使用 GPU 加速操作,并無縫回退至 CPU 以執行不受支持的操作。此方法的基本支柱是 分析器,該分析器可用于了解與 CPU 相比,GPU 上執行的代碼量。 在本文中,我們將討論 分析器是什么,如何使用它,以及為什么它對于理解和優化加速 pandas 工作負載至關重要。 Jupyter 和 IPython 中提供的 magic 命令是一種分析工具,可實時分析 pandas 式代碼。啟用 擴展后,分析器將報告每個操作的執行設備 (GPU 或 CPU),并統計特定函數或方法的觸發次數。 通過捕獲這些數據,您可以快速確定以下內容:

Source

]]>
12898
利用 RAPIDS 和 Ray 加速 GPU 數據分析 http://www.open-lab.net/zh-cn/blog/accelerating-gpu-analytics-using-rapids-and-ray/ Fri, 20 Dec 2024 08:38:41 +0000 http://www.open-lab.net/zh-cn/blog/?p=12465 Continued]]> RAPIDS 是一套開源 GPU 加速的數據科學和 AI 庫,可通過 Spark 和 Dask 等分布式引擎進行橫向擴展。 Ray 是一種熱門的開源分布式 Python 框架,常用于擴展 AI 和機器學習 (ML) 應用。Ray 特別擅長簡化和擴展訓練和推理工作流,并且可以輕松面向 CPU 和 GPU 設備。 在本文中,我們將探討如何使用 Ray 和 RAPIDS 加速新型分析流程。 Ray 提供用于 訓練 和 服務 ML 模型的高級抽象概念 ,同時我們將試驗 Ray 的核心,尤其是 Ray Actors。Actors 是有狀態的 workers,這意味著每個 worker 都可以存儲、管理和變異存儲的任何數據。例如,如果您想使用 cuDF 在 GPU 上加載一些數據,可以執行以下操作: 此示例使用 Ray 在四個 GPU 上創建四個…

Source

]]>
12465
統一虛擬內存利用 RAPIDS cuDF 為 pandas 提供強力支持 http://www.open-lab.net/zh-cn/blog/unified-virtual-memory-supercharges-pandas-with-rapids-cudf/ Thu, 05 Dec 2024 07:07:40 +0000 http://www.open-lab.net/zh-cn/blog/?p=12395 Continued]]> 上一篇文章 中介紹的 是一個 GPU 加速庫,可加速 pandas 以實現顯著的性能提升,速度最高可提升至原來的 50 倍,而無需對現有代碼進行任何更改。作為 NVIDIA RAPIDS 生態系統的一部分, 充當代理層,盡可能在 GPU 上執行運算,必要時 (通過 pandas) 回退至 CPU。這可確保與完整的 pandas API 和第三方庫兼容,同時利用 GPU 加速加快數據處理速度。只需加載 ,用戶即可維護熟悉的 pandas 工作流程,同時獲得統一的 CPU/GPU 體驗。 在幕后, 默認使用托管內存池,使其能夠處理超過 GPU 物理內存的數據集。這是通過 CUDA Unified Virtual Memory (UVM) 實現的,可提供跨主機 (CPU) 和設備 (GPU) 內存的統一地址空間。UVM 允許 超額訂閱 GPU 內存,根據需要自動在主機和設備之間遷移數據。

Source

]]>
12395
借助 NVIDIA NeMo 實現出色的 ASR 模型 10 倍加速 http://www.open-lab.net/zh-cn/blog/accelerating-leaderboard-topping-asr-models-10x-with-nvidia-nemo/ Tue, 24 Sep 2024 06:58:47 +0000 http://www.open-lab.net/zh-cn/blog/?p=11356 Continued]]> NVIDIA NeMo 持續開發了設定行業基準的 自動語音識別(ASR) 模型,尤其是在 Hugging Face Open ASR 排行榜 上拔得頭籌的模型。 這些可將語音轉錄為文本的 NVIDIA NeMo ASR 模型提供了一系列旨在優化速度和準確性的架構: 以前,這些模型面臨速度性能瓶頸,例如投射開銷、低計算強度和發散性能問題。 在本文中,您將了解 NVIDIA 如何通過將張量自動投射到 、創新的標簽循環算法以及引入 NeMo 2.0.0 中可用的 CUDA Graphs 等關鍵增強功能,將 NeMo ASR 模型的推理速度提升高達 10 倍(圖 1)。 本節將深入探討 NVIDIA 自動語音識別(ASR)模型如何克服各種速度性能瓶頸,包括投射開銷、批量處理優化、低計算強度和發散性能問題。 從 NeMo 的早期開始,

Source

]]>
11356
用于直線 CUDA 圖形和其他性能增強的恒定時間啟動 http://www.open-lab.net/zh-cn/blog/constant-time-launch-for-straight-line-cuda-graphs-and-other-performance-enhancements/ Wed, 11 Sep 2024 08:11:14 +0000 http://www.open-lab.net/zh-cn/blog/?p=11288 Continued]]> CUDA Graphs 是一種將 GPU 運算定義為圖形(而非一系列流啟動)并將其批量處理的方法。CUDA Graph 將一組 CUDA 內核和其他 CUDA 運算分組在一起,并使用指定的依賴關系樹執行這些運算。它將與 CUDA 內核啟動和 CUDA API 調用相關的驅動程序活動結合起來,從而加快工作流程。它還可以執行與硬件加速的依賴關系,而不是在可能的情況下僅依賴 CUDA 流和事件。 CUDA 圖形對于 AI 框架尤為重要,因為它們使您能夠捕獲和回放一系列 CUDA 操作,從而降低 CPU 開銷并提高性能。借助最新的改進,您現在可以更好地利用 CUDA 圖形來加速 AI 工作負載。 在 CUDA 工具包 11.8 和 CUDA 工具包 12.6 以及隨附的驅動程序版本之間,NVIDIA 在幾個方面提高了 CUDA 圖形的性能: 在本文中,

Source

]]>
11288
通過降低指令緩存未命中率提高 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
使用 NVIDIA NIM 實現多語種大語言模型部署 http://www.open-lab.net/zh-cn/blog/deploy-multilingual-llms-with-nvidia-nim/ Mon, 08 Jul 2024 07:40:39 +0000 http://www.open-lab.net/zh-cn/blog/?p=10600 Continued]]> 對于在當今全球化商業環境中運營的企業而言,多語種大型語言模型(LLM)的重要性與日俱增。隨著企業跨越國界和文化擴展業務,使用多種語言進行有效溝通的能力對于取得成功至關重要。通過支持和投資多語種 LLM,企業可以打破語言障礙,培養包容性,并在全球市場中獲得競爭優勢。 基礎模型 在處理多語種語言時通常會面臨挑戰。大多數模型主要使用英語文本語料庫進行訓練,這導致了對西方語言模式和文化規范的內在偏見。 這導致 LLM 難以準確捕捉非西方語言和社會特有的細微差別、習語和文化語境。此外,許多低資源語言缺乏高質量數字化文本數據,這進一步加劇了資源緊缺問題,使 LLM 難以跨這些語言進行有效學習和泛化。因此,LLM 通常無法反映非西方語言固有的文化上適當的表達、情感含義和上下文微妙之處,從而導致潛在的錯誤解釋或有偏見的輸出。 根據Meta Llama 3最近的一篇博客文章:

Source

]]>
10600
具有條件節點的 CUDA 圖的動態控制流 http://www.open-lab.net/zh-cn/blog/dynamic-control-flow-in-cuda-graphs-with-conditional-nodes/ Fri, 10 May 2024 07:40:58 +0000 http://www.open-lab.net/zh-cn/blog/?p=10046 Continued]]> CUDA 圖 可以顯著提高性能,因為驅動程序能夠使用任務和依賴關系的完整描述來優化執行。特別是在靜態工作流中,圖形可以提供難以置信的好處,其創建的開銷可以在多次連續啟動中分攤,從而提高整體性能。 然而,幾乎所有的問題都涉及某種形式的決策,這可能需要分解圖并將控制權返回給 CPU,以決定下一步要啟動哪些工作。像這樣分解工作會損害 CUDA 進行優化的能力,占用 CPU 資源,并增加每次圖形啟動的開銷。 從 CUDA 12.4 開始,CUDA Graphs 支持 條件節點,這使得圖形的部分能夠有條件地或重復地執行,而不需要將控制返回到 CPU。這釋放了 CPU 資源,使得更多的工作流能夠在單個圖形中表示,從而提高了計算效率。 條件節點有兩種風格: 條件節點是容器節點,類似于子圖節點,但節點中包含的圖的執行取決于條件變量的值。

Source

]]>
10046
使用 NVIDIA GPU 和 VMAF-CUDA 計算視頻質量 http://www.open-lab.net/zh-cn/blog/calculating-video-quality-using-nvidia-gpus-and-vmaf-cuda/ Tue, 12 Mar 2024 06:35:08 +0000 http://www.open-lab.net/zh-cn/blog/?p=9194 Continued]]> 視頻質量指標用于評估視頻內容的保真度。它們提供一致的量化測量,用于評估編碼器的性能。 VMAF 將人類視覺建模與不斷發展的機器學習技術相結合,使其能夠適應新內容 .VMAF 通過結合視頻質量因素的詳細分析和人類視覺建模以及先進的機器學習,很好地契合了人類視覺感知。 本文展示了 CUDA 加速的 VMAF(VMAF-CUDA)如何在 NVIDIA GPU 上計算 VMAF 分數。VMAF 圖像特征提取器被移植到 CUDA,使其能夠使用 NVIDIA 視頻編解碼器 SDK。我們觀察到開源工具 FFmpeg 的吞吐量提高了 4.4 倍,4K 時的延遲降低了 37 倍。加速現在正式成為 VMAF 3.0 和 FFmpeg v6.1。 VMAF-CUDA 的實現是 NVIDIA 和 Netflix 成功開源協作的結果。該協作的成果包括擴展的 libvmaf API(帶有 GPU…

Source

]]>
9194
限制 CPU 線程以獲得更好的游戲性能 http://www.open-lab.net/zh-cn/blog/limiting-cpu-threads-for-better-game-performance/ Wed, 21 Feb 2024 05:06:21 +0000 http://www.open-lab.net/zh-cn/blog/?p=8942 Continued]]> 許多 PC 游戲都圍繞 8 核游戲機進行設計,并假設其軟件線程系統在所有 PC 上都“正常工作”,尤其是在工作線程池中的線程數量方面。不久前,大多數 PC 的核心數量與游戲機相似時,這是一個合理的假設:CPU 的速度更快,性能只是擴展。 但近年來,CPU 格局發生了變化,現在有一個復雜的性能變量矩陣需要導航: 這種復雜性意味著先前的線程計數確定算法(及其衍生算法)已不再足夠: 這種傳統的線程數量確定算法基于邏輯核心數量,并為關鍵線程保留了兩個核心。 當核心數量超過某個點時,許多受 CPU 限制的游戲實際上會降低性能,因此額外線程并行性的優勢會被開銷所抵消。 例如,在擁有 8 個以上物理核心的高端桌面系統中,一些游戲通過將其工作池的線程數量減少到 CPU 核心數量,可實現高達 15%的性能提升。 造成性能下降的原因十分復雜且多種多樣。

Source

]]>
8942
強大的場景文本檢測和識別:簡介 http://www.open-lab.net/zh-cn/blog/robust-scene-text-detection-and-recognition-introduction/ Tue, 16 Jan 2024 06:53:07 +0000 http://www.open-lab.net/zh-cn/blog/?p=8774 Continued]]> 識別和識別自然場景和圖像中的文本對于視頻標題文本識別、檢測車載攝像頭的標牌、信息檢索、場景理解、車牌識別以及識別產品文本等用例變得非常重要。 大多數這些用例都需要近乎實時的性能。常用的文本提取技術包括使用光學字符識別 (OCR) 系統。但是,大多數免費的商用 OCR 系統都經過訓練,可以識別文檔中的文本。在識別自然場景或帶字幕的視頻(如圖像透視、反射、模糊等)中的文本方面存在許多挑戰。 在本系列的下一篇文章中,強大的場景文本檢測和識別:實施,討論了如何使用先進的深度學習算法和技術(例如增量學習和微調)實現 STDR 工作流。第三篇博文強大的場景文本檢測和識別:推理優化,涵蓋了為您的 STDR 工作流提供生產就緒型優化和性能。 通常,文本提取過程涉及以下步驟: 由于文本外觀的可變性(例如曲率、方向和失真),識別自然場景圖像中的不規則文本可能具有挑戰性。

Source

]]>
8774
強大的場景文本檢測和識別:實施 http://www.open-lab.net/zh-cn/blog/robust-scene-text-detection-and-recognition-implementation/ Tue, 16 Jan 2024 06:46:22 +0000 http://www.open-lab.net/zh-cn/blog/?p=8764 Continued]]> 要使場景文本檢測和識別適用于不規則文本或特定用例,您必須完全控制模型,以便根據用例和數據集執行增量學習或微調。請記住,此工作流是場景理解、基于 AI 的檢查和文檔處理平臺的主要構建塊。它應該準確且低延遲。 在本系列的第一篇文章中,強大的場景文本檢測和識別:簡介 討論了穩健的場景文本檢測和識別(STDR)在各行各業中的重要性以及所面臨的挑戰。第三篇博文 強大的場景文本檢測和識別:推理優化 涵蓋了 STDR 工作流的生產就緒型優化和性能。 在這篇博文中,我們決定采用高度精確的先進深度學習模型。為了確保準確性并維持較低的端到端延遲,我們采用了以下工具和框架來執行模型推理優化:NVIDIA TensorRT 和 ONNX Runtime。為了確保標準模型能夠被部署和執行,同時保證具有可擴展性的高性能推理,我們還選擇使用了 NVIDIA Triton 推理服務器。 為了訓練模型,

Source

]]>
8764
強大的場景文本檢測和識別:推理優化 http://www.open-lab.net/zh-cn/blog/robust-scene-text-detection-and-recognition-inference-optimization/ Tue, 16 Jan 2024 06:41:55 +0000 http://www.open-lab.net/zh-cn/blog/?p=8759 Continued]]> 在本文中,我們將深入探討推理優化過程,以在推理階段提高機器學習模型的性能和效率。我們將討論所采用的技術,例如推理計算圖形簡化、量化和降低精度。我們還展示了場景文本檢測和識別模型的基準測試結果,其中比較了 ONNX 運行時 和 NVIDIA TensorRT 使用 NVIDIA Triton 推理服務器。 最后,我們總結了優化深度學習模型對于推理的重要性,以及使用端到端 NVIDIA 軟件解決方案的優勢,NVIDIA AI Enterprise 用于構建高效可靠的場景文本 OCR 系統。 在本系列的第一篇文章中,強大的場景文本檢測和識別:簡介 討論了穩健場景文本檢測和識別(STDR)在各行各業中的重要性以及所面臨的挑戰。第二篇博文 強大的場景文本檢測和識別:實施 并討論了如何使用先進的深度學習算法和技術(如增量學習和微調)實現 STDR 工作流。

Source

]]>
8759
在某些場景中使用 cgroup 縮短 CUDA 初始化時間 http://www.open-lab.net/zh-cn/blog/improving-cuda-initialization-times-using-cgroups-in-certain-scenarios/ Fri, 05 Jan 2024 05:55:57 +0000 http://www.open-lab.net/zh-cn/blog/?p=8671 Continued]]> 在多 GPU 平臺上運行的許多 CUDA 應用程序通常使用單個 GPU 來滿足其計算需求。在這種情況下,應用程序會支付性能損失,因為 CUDA 必須枚舉/初始化系統上的所有 GPU.如果 CUDA 應用程序不需要其他 GPU 可見和可訪問,您可以通過將不需要的 GPU 與 CUDA 進程隔離并消除不必要的初始化步驟來啟動此類應用程序。 本文將討論實現此目標的各種方法及其性能優勢。 在 Linux 系統上,可以使用 Linux 工具(如.在本節中,我們首先討論低級方法,然后討論更高級別的可能方法。 CUDA 提供的用于隔離設備的另一種方法是使用雖然在功能上類似,但相較于 NVIDIA Omniverse 的方法。 控制組提供了一種機制,用于將任務集及其未來的子集聚合或劃分到具有專門行為的分層組中。您可以使用來控制 CUDA 進程可見的 GPU.

Source

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