GPU 性能可變性分析框架

大家讀完覺得有幫助記得關注和點贊!!!

抽象。

分析來自 GPU 分析器的大規模性能日志通常需要數 TB 的內存和數小時的運行時間,即使是基本摘要也是如此。這些限制會阻止及時洞察,并阻礙將性能分析集成到自動化工作流程中。現有的分析工具通常按順序處理數據,這使得它們不適合跟蹤復雜性和容量不斷增長的 HPC 工作流。我們引入了一個分布式數據分析框架,該框架可隨數據集大小和計算可用性而擴展。我們的系統沒有將數據集視為單個實體,而是將其劃分為可獨立分析的分片,并在 MPI 等級之間并發處理它們。這種設計減少了每個節點的內存壓力,避免了中央瓶頸,并支持對高維跟蹤數據的低延遲探索。我們將該框架應用于來自真實 HPC 和 AI 工作負載的端到端 Nsight Compute 跟蹤,展示了其診斷性能變化的能力,并揭示了內存傳輸延遲對 GPU 內核行為的影響。

1.介紹

GPU 具有并行處理能力,是高性能計算 (HPC) 工作負載的關鍵加速器。對 GPU 驅動的應用程序進行高效分析對于識別性能瓶頸、管理資源和優化 GPU 利用率至關重要。但是,高級分析工具生成的性能日志會迅速增長到 TB,使將整個數據集加載到單節點內存的傳統順序分析方法不堪重負。當前的方法嚴重依賴增量處理或重復的基于磁盤的作,嚴重限制了可擴展性和效率。

為了克服這些限制,我們提出了一個專為 GPU 性能日志設計的分布式數據驅動分析框架。我們的解決方案將大型 SQLite3 表劃分為較小的分片,跨多個 MPI 等級并發處理。這允許每個節點僅分析一小部分數據,從而顯著降低每個節點的內存需求和計算延遲,從而實現對大量 GPU 數據集的可擴展、高效分析。

2.背景

2.1.Nvidia Nsight 分析

NVIDIA Nsight 分析(Nsight Systems 和 Nsight Compute)跟蹤 CPU-GPU 交互、內核執行、內存傳輸和硬件使用情況。使用 Gueroudji 等人的數據集,將分析數據組織到 CUPTI 表中(表?1)。(Gueroudji 等人,2024).在數據集中,

(1) ACTIVITY_KIND_KERNEL記錄內核啟動、時間戳、設備和流 ID 以及資源使用情況;

(2) ACTIVITY_KIND_MEMCPY記錄內存傳輸、時間戳、大小、方向和流 ID;

(3) TARGET_INFO_GPU報告 GPU 屬性,例如內存大小、帶寬、SM 數量和計算能力。

Profiling Rank內核MEMCPY圖形處理器# 已加入
第 0 名842054107045493 分鐘
第 1 名842054107099493 分鐘
第 2 名8420541070545493 分鐘
第 3 名842054107045493 分鐘

表 1.分析 Ranks 和關聯的 SQLITE 表。KERNEL、MEMCPY、GPU 分別定義為 CUPTI_ACTIVITY_KIND_KERNEL、

CUPTI_ACTIVITY_KIND_MEMCPY

TARGET_INFO_GPU 表。# 每次“左”加入后加入的實體的大致數量

3.設計與實施

我們設計了一個兩階段管道,包括 (i) 提取和分片執行跟蹤的數據生成階段,以及 (ii) 整合和分析數據以揭示異常行為的數據聚合階段。

數據生成我們的管道識別基本的 SQLite3 表并提取內核時間戳以定義數據集邊界。我們將整個時間范圍均勻劃分為N非重疊分片,每個分片按時間戳對內核執行進行分箱。鑒于PMPI 排名,我們選擇塊分區而不是循環分區,因為數據集是靜態的,并且工作負載的可預測性很高。數據塊分區將連續的分片分配給每個等級,從而減少查詢開銷,提高數據局部性,并實現高效的 SQL 查詢執行。每個排名都獨立處理其分配的分片,并將查詢結果保存到名稱一致的 parquet 文件中,從而促進無縫的下游聚合。

數據聚合我們通過定義一個全局字典來開始聚合,其中時間戳作為鍵和固定的用戶定義持續時間 (我?n?t?e?r?v?一個?l=1?s默認情況下)。每個等級都會加載其分配的NPparquet 文件,將樣本映射到相應的時間分片。隨后P排名以循環方式協作計算統計指標(最小值、最大值、標準偏差),從而均勻平衡工作負載并最大限度地減少爭用。這些共享的統計數據有助于識別異常,我們使用四分位距 (IQR) 從中選擇前 5 個異常分片(惠利,2014)方法。

4.初步結果

為了評估我們的管道,我們使用了德克薩斯州高級計算中心 (TACC) 的 Lonestar6 超級計算機。Lonestar6 超級計算機有 560 個計算節點,每個節點配備兩個 AMD EPYC 7763 處理器(總共 128 個內核)和 256 GB DDR4 內存。有 84 個 GPU 節點,每個節點具有相同的 CPU 和 3 個 NVIDIA A100 GPU(每個 40 GB HBM2)

所有等級的 Memory Stall Duration??繪制了所有四個等級的內存停頓持續時間,y 軸上是停頓持續時間,x 軸上是經過的運行時間(以秒為單位)。該圖顯示了在多個 rank之間同時發生的持續內存停頓,這表明存在同步問題或內存帶寬爭用。根據目視檢查,我們選擇 Rank 2 進行詳細分析。

內存停頓與內核執行關系?我們從 Rank 2 中分離出前 5% 的最高可變性區間,以分析內存停頓和內核執行之間的關系。該圖證實了 Device-to-Host 和 Host-to-Device 傳輸占主導地位,這表明由于批處理效率低下導致了頻繁的乒乓模式。相比之下,稀疏的設備到設備傳輸表明 GPU 內部作不頻繁,突出了通過共享內存重用或平鋪進行優化的機會。

開銷?比較了不同 MPI 配置中兩個階段的持續時間:數據生成和數據聚合。我們發現,隨著 MPI 秩數量的增加,數據生成和聚合時間都會減少。這證明我們的管道是 可擴展以處理大量數據。

5.結論

我們開發了一個分布式框架,通過將 SQLite3 表分區為分片來并發分析 GPU 性能日志,從而減少內存使用和延遲。分析了 93M 個樣本,我們確定了導致內存停頓的時間戳和實體。未來的工作將側重于通過消除中間 I/O 瓶頸來提高可擴展性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/912059.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912059.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912059.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis主從復制原理

一、Redis主從復制概述 Redis主從復制(Master-Slave Replication)是Redis實現高可用性和讀寫分離的基礎架構。通過主從復制,數據可以從一個Redis服務器(主節點)復制到一個或多個Redis服務器(從節點&#x…

將ONNX模型轉換為(OPENMV可用的格式)TensorFlow Lite格式

將ONNX模型轉換為TensorFlow Lite格式 在深度學習模型部署過程中,我們常常需要將模型從一種格式轉換為另一種格式,以適應不同的硬件平臺和應用場景。本文將詳細介紹如何將ONNX格式的模型轉換為TensorFlow Lite格式,以便在移動設備或嵌入式設…

EXILIUM×亞矩云手機:重構Web3虛擬生存法則,開啟多端跨鏈元宇宙自由征途

在鏈游與元宇宙賽道競爭加劇的當下,EXILIUM憑借其去中心化開放世界、鏈上資產確權與玩家自治經濟系統,成為Web3原住民逃離“中心化牢籠”的首選之地。然而,其多鏈交互門檻高、跨設備身份管理復雜、鏈上安全風險頻發等問題,讓普通玩…

用3個字符表示2字節二進制數據

把1字節二進制數據&#xff0c;用可打印字符表示&#xff0c;可用十六進制。這樣一來&#xff0c;1字節變2字節&#xff0c;2倍。 2字節的二進制數據&#xff0c;可以用3個字符來表示&#xff0c;1.5倍。 2562略小于413&#xff0c;65536<68921 需要準備41個符號 包括&…

第 3 章:神經網絡如何學習

第 3 章&#xff1a;神經網絡如何學習 在第二章中&#xff0c;我們詳細了解了神經網絡的靜態結構&#xff1a;由神經元組成的層&#xff0c;以及連接它們的權重和偏置。現在&#xff0c;我們將進入整個教程最核心的部分&#xff1a;神經網絡是如何從數據中"學習"的&…

RocketMQ 消息長輪詢

文章目錄 問題所在&#xff1a;消費者如何高效地獲取消息&#xff1f;解決方案&#xff1a;長輪詢 (Long Polling - “等待與觀察”模式)長輪詢 vs. 短輪詢&#xff08;可視化對比&#xff09;為什么這個機制對 RocketMQ 這么好&#xff1f;關鍵的配置參數 讓我們用一個簡單易懂…

TensorFlow Serving學習筆記3: 組件調用關系

一、整體架構 TensorFlow Serving 采用模塊化設計&#xff0c;核心組件包括&#xff1a; Servables&#xff1a;可服務對象&#xff08;如模型、查找表&#xff09;Managers&#xff1a;管理 Servable 生命周期&#xff08;加載/卸載&#xff09;Loaders&#xff1a;負責 Ser…

視圖、索引介紹

目錄 1、視圖 1.1、什么是視圖 1.2、創建視圖 1.3、使用視圖 1.4、修改視圖 1.5、刪除視圖 1.6、視圖的優點 2、MySQL存儲結構 2.1、MySQL中的頁 3、索引 3.1、索引的數據結構 3.2、B樹 和 B樹 3.3、B樹在MySQL索引中的應用 3.4、索引分類 1、視圖 1.1、什么是視…

QT6(46)5.2 QStringListModel 和 QListView :列表的模型與視圖的界面搭建與源代碼實現

&#xff08;154&#xff09;理論講解 &#xff1a; 例題程序的界面搭建 &#xff1a; &#xff08;155&#xff09;以下開始完善代碼 &#xff0c;先準備要給 model 的源數據&#xff0c;一些字符串 &#xff1a; 給出該頭文件&#xff0c;以全面展示其內容&#xff1a; #i…

C++設計模式(GOF-23)——03 C++觀察者模式(Observer / Event、發布-訂閱模式、事件模式)

文章目錄 一、觀察者模式概述二、傳統代碼 vs 觀察者模式對比1. 傳統實現&#xff08;緊耦合&#xff09;2. 觀察者模式實現&#xff08;松耦合&#xff09; 三、Mermaid 類圖說明四、核心設計要點1. 接口分層設計2. 通知機制實現3. 擴展性驗證 五、應用場景與注意事項適用場景…

海外 AI 部署:中國出海企業如何選擇穩定、安全的云 GPU 基礎設施?

2025年&#xff0c;中國 AI 企業在模型訓練、產品落地和創新應用上不斷刷新人們的認知。DeepSeek-R1、Qwen3 等國產大模型密集亮相&#xff0c;國內大模型產業熱潮持續升溫。與此同時&#xff0c;一個現實的問題也在被越來越多企業關注&#xff1a;模型雖然訓練得起&#xff0c…

AI繪畫工具實測:Stable Diffusion本地部署指

對于想要深度體驗AI繪畫的創作者來說&#xff0c;本地部署Stable Diffusion能帶來更自由的創作空間。本文將詳細介紹Windows系統下的部署流程&#xff0c;幫助你在個人電腦上搭建專業的AI繪畫環境。 硬件準備與基礎環境配置 部署前需確認電腦配置&#xff1a;建議NVIDIA顯卡&…

macOS - 快速上手使用 YOLO

文章目錄 一、關于 yolo二、安裝三、命令行使用官方示例yolo cfgyolo predict 四、Python 調用results 數據 一、關于 yolo YOLO(YOLO&#xff08;You Only Look Once&#xff09;是一種流行的物體檢測和圖像分割模型&#xff0c;由華盛頓大學的約瑟夫-雷德蒙&#xff08;Jose…

<script setup> 語法糖

下面&#xff0c;我們來系統的梳理關于 Vue 3 <script setup> 語法糖 的基本知識點&#xff1a; 一、<script setup> 核心概念 1.1 什么是 <script setup>&#xff1f; <script setup> 是 Vue 3 中 Composition API 的編譯時語法糖&#xff0c;它通過…

MYSQL-InnoDB邏輯存儲結構 詳解

InnoDB邏輯存儲結構 段—區—頁—行 表空間&#xff1a; 默認情況下InnoDB有一個共享表空間ibdata1&#xff0c;所有數據放入這個表空間&#xff0c;如果開啟了innodb_file_per_table&#xff08;默認ON&#xff09;&#xff0c;每張表都可以放到一個單獨的表空間&#xff0…

[特殊字符] Python 批量合并 Word 表格中重復單元格教程(收貨記錄案例實戰)

在日常辦公中&#xff0c;Word 表格中常出現重復的“供應商名稱”或“物料編碼”&#xff0c;會導致表格冗余且視覺混亂。這時候&#xff0c;用 Python 自動合并重復單元格可以大幅提升表格專業度和可讀性。本篇給大家演示如何用 python-docx 實現該功能。 ? 功能概覽 自動讀取…

從零構建Node.js服務托管前端項目

下面是一個完整的指南&#xff0c;教你如何從零開始構建一個Node.js服務來托管前端項目&#xff0c;并代理API請求到其他服務器。 1. 項目初始化 # 創建項目目錄 mkdir node-proxy-server cd node-proxy-server# 初始化npm項目 npm init -y# 安裝必要依賴 npm install expres…

Lynx vs React Native vs Flutter 全面對比:三大跨端框架實測分析

一文看懂三大熱門跨端技術的歷史淵源、架構機制、開發體驗、包體積對比與性能評估。 我陪你用實測數據帶你理性選型&#xff0c;不踩坑&#xff0c;不盲信。 1. 框架簡介&#xff1a;它們是誰&#xff1f;來自哪里&#xff1f;干嘛用&#xff1f; 框架名稱所屬公司發布時間初衷…

CKESC的ROCK 180A-H 無人機電調:100V 高壓冗余設計與安全保護解析

一、核心技術參數與性能指標 電壓范圍&#xff1a;支持 12~26S 鋰電&#xff08;適配 110V 高壓系統&#xff09;電流特性&#xff1a; 持續工作電流&#xff1a;90A&#xff08;特定散熱條件&#xff09;瞬時耐流&#xff08;1 秒&#xff09;&#xff1a;220A&#xff0c;3 …

優化 ArcPy 腳本性能

使用并行處理 如果硬件條件允許&#xff0c;可以使用 Python 的并行處理模塊&#xff08;如 multiprocessing&#xff09;來同時處理多個小任務。這樣可以充分利用多核處理器的優勢&#xff0c;提高腳本的執行效率。 import multiprocessing def process_raster(raster):arcpy…