91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CUDA強(qiáng)大新工具:nvprof 命令行探查器

星星科技指導(dǎo)員 ? 來源:NVIDIA ? 作者:Mark Harris ? 2022-04-11 09:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

CUDA 5 為 CUDA 工具箱添加了一個強(qiáng)大的新工具: nvprofnvprof 是一個可用于 Linux 、 Windows 和 OS X 的命令行探查器。乍一看, nvprof 似乎只是 NVIDIA Visual Profiler 和 NSight 日蝕版 中圖形分析功能的無 GUI 版本。但是 nvprof 遠(yuǎn)不止這些;對我來說, nvprof 是一個輕量級的分析器,它達(dá)到了其他工具所不能達(dá)到的水平。

使用 nvprof 進(jìn)行快速檢查

我經(jīng)常想知道我的 CUDA 應(yīng)用程序是否按預(yù)期運(yùn)行。有時這只是一個正常的檢查:應(yīng)用程序是否在 GPU 上運(yùn)行內(nèi)核?它是否執(zhí)行過多的內(nèi)存復(fù)制?通過使用 nvprof ./myApp 運(yùn)行我的應(yīng)用程序,我可以快速看到它所使用的所有內(nèi)核和內(nèi)存副本的摘要,如下面的示例輸出所示。

    ==9261== Profiling application: ./tHogbomCleanHemi

    ==9261== Profiling result:

    Time(%)      Time     Calls       Avg       Min       Max  Name

     58.73%  737.97ms      1000  737.97us  424.77us  1.1405ms  subtractPSFLoop_kernel(float const *, int, float*, int, int, int, int, int, int, int, float, float)

     38.39%  482.31ms      1001  481.83us  475.74us  492.16us  findPeakLoop_kernel(MaxCandidate*, float const *, int)

      1.87%  23.450ms         2  11.725ms  11.721ms  11.728ms  [CUDA memcpy HtoD]

      1.01%  12.715ms      1002  12.689us  2.1760us  10.502ms  [CUDA memcpy DtoH]

在默認(rèn)的 摘要模式 中, nvprof 提供了應(yīng)用程序中 GPU 內(nèi)核和內(nèi)存副本的概述。摘要將對同一內(nèi)核的所有調(diào)用組合在一起,顯示每個內(nèi)核的總時間和總應(yīng)用程序時間的百分比。除了摘要模式之外, nvprof 還支持 GPU – 跟蹤和 API 跟蹤模式 ,它可以讓您看到所有內(nèi)核啟動和內(nèi)存副本的完整列表,在 API 跟蹤模式下,還可以看到所有 CUDA API 調(diào)用的完整列表。

下面是一個使用 nvprof --print-gpu-trace 評測在我的電腦上的兩個 GPUs 上運(yùn)行的 nbody 示例應(yīng)用程序的示例。我們可以看到每個內(nèi)核在哪個 GPU 上運(yùn)行,以及每次啟動使用的網(wǎng)格維度。當(dāng)您想驗證 multi- GPU 應(yīng)用程序是否按預(yù)期運(yùn)行時,這非常有用。

nvprof --print-gpu-trace ./nbody --benchmark -numdevices=2 -i=1

...

==4125== Profiling application: ./nbody --benchmark -numdevices=2 -i=1

==4125== Profiling result:

   Start  Duration            Grid Size      Block Size     Regs*    SSMem*    DSMem*      Size  Throughput           Device   Context    Stream  Name

260.78ms     864ns                    -               -         -         -         -        4B  4.6296MB/s   Tesla K20c (0)         2         2  [CUDA memcpy HtoD]

260.79ms     960ns                    -               -         -         -         -        4B  4.1667MB/s  GeForce GTX 680         1         2  [CUDA memcpy HtoD]

260.93ms     896ns                    -               -         -         -         -        4B  4.4643MB/s   Tesla K20c (0)         2         2  [CUDA memcpy HtoD]

260.94ms     672ns                    -               -         -         -         -        4B  5.9524MB/s  GeForce GTX 680         1         2  [CUDA memcpy HtoD]

268.03ms  1.3120us                    -               -         -         -         -        8B  6.0976MB/s   Tesla K20c (0)         2         2  [CUDA memcpy HtoD]

268.04ms     928ns                    -               -         -         -         -        8B  8.6207MB/s  GeForce GTX 680         1         2  [CUDA memcpy HtoD]

268.19ms     864ns                    -               -         -         -         -        8B  9.2593MB/s   Tesla K20c (0)         2         2  [CUDA memcpy HtoD]

268.19ms     800ns                    -               -         -         -         -        8B  10.000MB/s  GeForce GTX 680         1         2  [CUDA memcpy HtoD]

274.59ms  2.2887ms             (52 1 1)       (256 1 1)        36        0B  4.0960KB         -           -   Tesla K20c (0)         2         2  void integrateBodies(vec4::Type*, vec4::Type*, vec4::Type*, unsigned int, unsigned int, float, float, int) [242]

274.67ms  981.47us             (32 1 1)       (256 1 1)        36        0B  4.0960KB         -           -  GeForce GTX 680         1         2  void integrateBodies(vec4::Type*, vec4::Type*, vec4::Type*, unsigned int, unsigned int, float, float, int) [257]

276.94ms  2.3146ms             (52 1 1)       (256 1 1)        36        0B  4.0960KB         -           -   Tesla K20c (0)         2         2  void integrateBodies(vec4::Type*, vec4::Type*, vec4::Type*, unsigned int, unsigned int, float, float, int) [275]

276.99ms  979.36us             (32 1 1)       (256 1 1)        36        0B  4.0960KB         -           -  GeForce GTX 680         1         2  void integrateBodies(vec4::Type*, vec4::Type*, vec4::Type*, unsigned int, unsigned int, float, float, int) [290]



Regs: Number of registers used per CUDA thread.

SSMem: Static shared memory allocated per CUDA block.

DSMem: Dynamic shared memory allocated per CUDA block.

使用nvprofto ProfileAnything

nvprof 知道如何評測運(yùn)行在 GPUs NVIDIA 上的 CUDA 內(nèi)核,不管它們是用什么語言編寫的(只要它們是使用 CUDA 運(yùn)行時 API 或驅(qū)動程序 API 啟動的)。這意味著我可以使用 nvprof 來評測 OpenACC 程序(沒有顯式內(nèi)核),甚至可以在內(nèi)部生成 PTX 匯編內(nèi)核的程序。 Mark Ebersole 在他最近關(guān)于 CUDA Python 的 CUDA Cast ( 第十集 )中展示了一個很好的例子,其中他使用 NumbaPro 編譯器(來自 Continuum Analytics )及時編譯了一個 Python 函數(shù),并在 GPU 上并行運(yùn)行。

在 OpenACC 或 CUDA Python 程序的初始實現(xiàn)過程中,函數(shù)是否在 nvprof 或 GPU 上運(yùn)行可能并不明顯(尤其是如果您沒有計時)。在 Mark 的例子中,他在 GPU 內(nèi)部運(yùn)行 Python 解釋器,捕捉應(yīng)用程序的 CUDA 函數(shù)調(diào)用和內(nèi)核啟動的跟蹤,顯示內(nèi)核確實在 GPU 上運(yùn)行,以及用于將數(shù)據(jù)從 CPU 傳輸?shù)?GPU 的 cudaMemcpy 調(diào)用。這是一個很好的例子,說明了像 nvprof 這樣的輕量級命令行 GPU 探查器的“健全性檢查”功能。

使用nvprof進(jìn)行遠(yuǎn)程分析

有時,您正在部署的系統(tǒng)不是您的桌面系統(tǒng)。例如,如果您使用的是 GPU 集群或云系統(tǒng),如 Amazon EC2 ,并且您只能通過終端訪問機(jī)器。這是 nvprof 的另一個重要用途。只需連接到遠(yuǎn)程計算機(jī)(例如使用 ssh ,并在 nvprof 下運(yùn)行應(yīng)用程序。

通過使用 --output-profile 命令行選項,您可以輸出一個數(shù)據(jù)文件,以便以后導(dǎo)入到 nvprof 或 NVIDIA 可視化探查器中。這意味著您可以在遠(yuǎn)程計算機(jī)上捕獲一個概要文件,然后在可視化分析器中可視化并分析桌面上的結(jié)果(有關(guān)詳細(xì)信息,請參見“ 遠(yuǎn)程分析 ”)。

nvprof 提供了一個方便的選項( --analysis-metrics ),用于捕獲 visualprofiler 在其“引導(dǎo)分析”模式下所需的所有 GPU 指標(biāo)。下面的屏幕截圖顯示了用于確定內(nèi)核瓶頸的可視化分析器。此分析的數(shù)據(jù)是使用下面的命令行捕獲的。

nvprof --analysis-metrics -o  nbody-analysis.nvprof ./nbody --benchmark -numdevices=2 -i=1
分析從 nvp 命令行分析器導(dǎo)入的數(shù)據(jù)的 NVIDIA 可視化分析器( nvp )的屏幕截圖。

非常方便的工具

如果您是命令行工具的粉絲,我想您會喜歡使用 nvprof 。 nvprof 可以做的還有很多,我在這里還沒有提到,比如在 NVIDIA 可視化分析器中收集分析指標(biāo)。關(guān)于作者

Mark Harris 是 NVIDIA 杰出的工程師,致力于 RAPIDS 。 Mark 擁有超過 20 年的 GPUs 軟件開發(fā)經(jīng)驗,從圖形和游戲到基于物理的模擬,到并行算法和高性能計算。當(dāng)他還是北卡羅來納大學(xué)的博士生時,他意識到了一種新生的趨勢,并為此創(chuàng)造了一個名字: GPGPU (圖形處理單元上的通用計算)。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4948

    瀏覽量

    131244
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11511

    瀏覽量

    213815
  • WINDOWS
    +關(guān)注

    關(guān)注

    4

    文章

    3614

    瀏覽量

    91411
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    淺談wsl --update` 命令行選項無效的解決方案

    PS C:\Users\Administrator> wsl --update >> 命令行選項無效: --update
    的頭像 發(fā)表于 06-27 10:28 ?588次閱讀

    aurix development studio無法用命令行編譯工程的原因?

    aurix development studio無法用命令行編譯工程
    發(fā)表于 04-18 06:50

    請問如何通過S32K312命令行構(gòu)建代碼?

    現(xiàn)在我們已經(jīng)通過 S32DS3.5 IDE 開發(fā)了固件,它也可以工作了。 最近,我們收到了通過命令行構(gòu)建代碼的要求,并且 我從 S32DS 幫助內(nèi)容中讀取了相關(guān)文檔,但這種情況會發(fā)生 有關(guān) JAVA
    發(fā)表于 04-09 07:48

    樹莓派新手必看!在樹莓派上編寫和運(yùn)行 Shell 腳本!

    在本教程中,我將討論Shell腳本的基礎(chǔ)知識、它們的用途以及如何在RaspberryPi上編寫和運(yùn)行Shell腳本。什么是Shell腳本?Shell腳本可以讓你自動化幾乎所有在Linux命令行上可以
    的頭像 發(fā)表于 03-25 09:28 ?462次閱讀
    樹莓派新手必看!在樹莓派上編寫和運(yùn)行 Shell 腳本!

    別讓數(shù)據(jù)丟失毀了你的樹莓派項目!rsync 自動化備份教程!

    備份你的RaspberryPi并不需要很復(fù)雜。雖然有許多高級的備份解決方案可供選擇,但有時最簡單的方法才是最有效的。在本文中,我將向你展示如何使用rsync——一個雖小但功能強(qiáng)大命令行工具,非常
    的頭像 發(fā)表于 03-25 09:22 ?580次閱讀
    別讓數(shù)據(jù)丟失毀了你的樹莓派項目!rsync 自動化備份教程!

    使用NXP MCX-N板卡新增命令控制

    此次任務(wù)通過串口命令行控制RGB LED,相比較與上一次任務(wù)通過單個字符控制增加了FreeRTOS-CLI組件,支持更復(fù)雜的、帶參數(shù)的命令
    的頭像 發(fā)表于 03-17 13:38 ?695次閱讀
    使用NXP MCX-N板卡新增<b class='flag-5'>命令</b>控制

    如何用幾條命令搞定Ubuntu系統(tǒng)的網(wǎng)絡(luò)配置

    在某些場景下,設(shè)備沒有顯示或屏可以用,這時候通過命令行來設(shè)置網(wǎng)絡(luò)就變得特別重要了。本文將介紹如何用幾條命令搞定Ubuntu系統(tǒng)的網(wǎng)絡(luò)配置。
    的頭像 發(fā)表于 03-14 10:53 ?2204次閱讀
    如何用幾條<b class='flag-5'>命令</b>搞定Ubuntu系統(tǒng)的網(wǎng)絡(luò)配置

    Linux常用命令行總結(jié)

    學(xué)習(xí)了一段時間的linux之后,開始著手基本命令的學(xué)習(xí),這里主要記錄一些學(xué)習(xí)過程中重要的知識點(diǎn)供以后查閱。
    的頭像 發(fā)表于 03-03 10:40 ?495次閱讀
    Linux常用<b class='flag-5'>命令行</b>總結(jié)

    curl wget bond:深入解析命令行工具的差異與應(yīng)用場景

    curl curl 是一個用于與服務(wù)進(jìn)行數(shù)據(jù)傳輸?shù)?b class='flag-5'>命令行工具。它支持多種協(xié)議,包括 HTTP、HTTPS、 FTP 等。 基本用法 獲取網(wǎng)頁內(nèi)容: curl http://example.com
    的頭像 發(fā)表于 01-24 09:20 ?448次閱讀

    圖形用戶界面與命令行接口的比較

    界面(GUI) : GUI是一種用戶界面,允許用戶通過圖形圖標(biāo)和視覺指示與電子設(shè)備進(jìn)行交互。 它通常包括窗口、按鈕、圖標(biāo)和菜單等元素,用戶可以通過鼠標(biāo)或觸摸屏進(jìn)行操作。 命令行接口(CLI) : CLI是一種用戶界面,用戶通過輸入文本
    的頭像 發(fā)表于 11-12 14:38 ?1221次閱讀

    Mobaxterm 的命令行使用方法

    的遠(yuǎn)程桌面協(xié)議(如RDP和VNC),以及文件傳輸協(xié)議(如FTP和SFTP)。本文將詳細(xì)介紹如何使用Mobaxterm的命令行功能。 2. 安裝 Mobaxterm 在開始之前,確保你已經(jīng)安裝
    的頭像 發(fā)表于 11-11 09:08 ?5041次閱讀

    APM32F411板的python+pyocd命令行操作

    前段時間學(xué)習(xí)了一下如何使用pyocd配合APM32F411VCTINY板在命令行下給它進(jìn)行各種騷操作,在使用一段時間后就想著:pyocd是基于python的,那是不是也可以使用python腳本+pyocd使用起來呢?
    的頭像 發(fā)表于 10-18 16:21 ?1018次閱讀
    APM32F411板的python+pyocd<b class='flag-5'>命令行</b>操作

    新加坡服務(wù)的速度測試方法有哪些

    測試新加坡服務(wù)的速度和性能是確保服務(wù)能夠滿足業(yè)務(wù)需求的關(guān)鍵步驟。以下是一些常用的方法和工具: Ping測試: Ping命令是一種基本的網(wǎng)絡(luò)診斷
    的頭像 發(fā)表于 10-14 14:55 ?529次閱讀

    Jtti:MySQL初始化操作如何設(shè)置root密碼

    MySQL初始化時,可以通過以下步驟設(shè)置root密碼: 打開命令行工具,使用以下命令啟動MySQL服務(wù): ? sudo service mysql start ? 使用以下命令登錄My
    的頭像 發(fā)表于 08-08 16:45 ?844次閱讀

    Windows操作系統(tǒng)中的常用命令

    Windows操作系統(tǒng)提供了許多實用的命令行工具,通過命令行界面(Command Prompt)或Windows PowerShell,用戶可以執(zhí)行各種任務(wù),如文件管理、系統(tǒng)維護(hù)、網(wǎng)絡(luò)配置等。掌握
    的頭像 發(fā)表于 08-07 15:40 ?1172次閱讀
    Windows操作系統(tǒng)中的常用<b class='flag-5'>命令</b>
    主站蜘蛛池模板: 5151四虎永久在线精品免费 | 欧美奇米 | 一区二区三区四区电影 | 九色综合久久综合欧美97 | 美国色天使 | 天天爱综合 | 久久毛片视频 | 日韩免费高清一级毛片 | 小草影院亚洲私人影院 | 亚洲爱爱网 | 天天做日日干 | 国产三片理论电影在线 | 天天爽夜夜爽人人爽曰喷水 | 四虎永久影院永久影库 | 日本欧美一区二区三区不卡视频 | 福利视频免费看 | 四虎影视在线播放 | 色视频免费版高清在线观看 | 欧美成人全部费免网站 | 免费任我爽橹视频在线观看 | 一区二区三区国模大胆 | 五月婷婷在线视频 | 午夜黄色影院 | 亚州1区2区3区4区产品乱码2021 | 成人午夜大片免费视频77777 | 免费一级毛片女人图片 | 亚洲第一页视频 | 欧美ol丝袜高跟秘书在线播放 | 天堂网. www在线资源 | 国内精品 第一页 | 色综网| 性色免费视频 | 免费看曰批女人爽的视频网址 | 1024视频色版在线网站 | 94久久国产乱子伦精品免费 | yy6080亚洲半夜理论一级毛片 | 午夜逼逼 | 亚洲 欧美 自拍 另类 | 特毛片 | 国产一级免费视频 | 9久久精品 |