色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

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

星星科技指導(dǎo)員 ? 來(lái)源:NVIDIA ? 作者:Mark Harris ? 2022-04-11 09:53 ? 次閱讀

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

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

我經(jīng)常想知道我的 CUDA 應(yīng)用程序是否按預(yù)期運(yùn)行。有時(shí)這只是一個(gè)正常的檢查:應(yīng)用程序是否在 GPU 上運(yùn)行內(nèi)核?它是否執(zhí)行過(guò)多的內(nèi)存復(fù)制?通過(guò)使用 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)存副本的概述。摘要將對(duì)同一內(nèi)核的所有調(diào)用組合在一起,顯示每個(gè)內(nèi)核的總時(shí)間和總應(yīng)用程序時(shí)間的百分比。除了摘要模式之外, nvprof 還支持 GPU – 跟蹤和 API 跟蹤模式 ,它可以讓您看到所有內(nèi)核啟動(dòng)和內(nèi)存副本的完整列表,在 API 跟蹤模式下,還可以看到所有 CUDA API 調(diào)用的完整列表。

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

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

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

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

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

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

nvprof 提供了一個(gè)方便的選項(xiàng)( --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 )的屏幕截圖。

非常方便的工具

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

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

審核編輯:郭婷

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

    關(guān)注

    28

    文章

    4768

    瀏覽量

    129216
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11342

    瀏覽量

    210136
  • WINDOWS
    +關(guān)注

    關(guān)注

    4

    文章

    3567

    瀏覽量

    89115
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    圖形用戶(hù)界面與命令行接口的比較

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

    Mobaxterm 的命令行使用方法

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

    APM32F411板的python+pyocd命令行操作

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

    使用idf4.3在命令行打開(kāi)menuconfig,如何才能開(kāi)啟lwip配置界面?

    請(qǐng)問(wèn)使用idf4.3在命令行打開(kāi)menuconfig,如何才能開(kāi)啟lwip配置界面。
    發(fā)表于 06-21 06:08

    請(qǐng)問(wèn)CY8CKIT-005-A是否支持命令行編程?

    我使用 minipro4 SWD 和 MTB-programmer 5.0 對(duì) MCU 編程,在批量生產(chǎn)中,我們希望使用腳本編程,它是否支持命令行編程?
    發(fā)表于 06-03 06:19

    鴻蒙ArkUI-X跨平臺(tái)開(kāi)發(fā):【命令行工具(ACE Tools)】

    ACE Tools是一套為ArkUI-X項(xiàng)目跨平臺(tái)應(yīng)用開(kāi)發(fā)者提供的命令行工具,支持在Windows/Ubuntu/macOS平臺(tái)運(yùn)行,用于構(gòu)建OpenHarmony/HarmonyOS、Android和iOS平臺(tái)的應(yīng)用程序,其功能包括開(kāi)發(fā)環(huán)境檢查,新建項(xiàng)目,編譯打包,安裝
    的頭像 發(fā)表于 05-21 17:39 ?1933次閱讀
    鴻蒙ArkUI-X跨平臺(tái)開(kāi)發(fā):【<b class='flag-5'>命令行</b><b class='flag-5'>工具</b>(ACE Tools)】

    高效云端管理的秘訣——華為云命令行工具 KooCLI

    發(fā)現(xiàn)了云上命令行工具,我的云端管理效率從此得到了質(zhì)的飛躍。 我從華為云官方產(chǎn)品幫助文檔中了解了 KooCLI 工具,文檔中介紹的便捷操作和高效管理讓我心動(dòng)不已,于是,我開(kāi)啟了我的體驗(yàn)。通過(guò)簡(jiǎn)單的
    的頭像 發(fā)表于 05-10 00:25 ?721次閱讀
    高效云端管理的秘訣——華為云<b class='flag-5'>命令行</b><b class='flag-5'>工具</b> KooCLI

    鴻蒙OpenHarmony南向:【Hi3516標(biāo)準(zhǔn)系統(tǒng)入門(mén)(命令行方式)】

    除小型系統(tǒng)外,Hi3516DV300開(kāi)發(fā)板還支持標(biāo)準(zhǔn)系統(tǒng)。此章節(jié)簡(jiǎn)要介紹如何使用命令行在Hi3516DV300開(kāi)發(fā)板上進(jìn)行標(biāo)準(zhǔn)系統(tǒng)的開(kāi)發(fā)。
    的頭像 發(fā)表于 05-08 09:26 ?929次閱讀
    鴻蒙OpenHarmony南向:【Hi3516標(biāo)準(zhǔn)系統(tǒng)入門(mén)(<b class='flag-5'>命令行</b>方式)】

    STM8 flash loader命令行調(diào)用錯(cuò)誤的原因?

    [td]我目前在用flash loader的命令行,編寫(xiě)自己的上位機(jī)軟件來(lái)升級(jí)程序,但是在用命令行調(diào)用的時(shí)候一直出錯(cuò),有人能幫忙分析下嗎? 我編寫(xiě)的bat文件
    發(fā)表于 05-06 07:23

    HarmonyOS開(kāi)發(fā):【基于命令行(安裝庫(kù)和工具集)】

    使用命令行進(jìn)行設(shè)備開(kāi)發(fā)時(shí),可以通過(guò)以下步驟安裝編譯OpenHarmony需要的庫(kù)和工具
    的頭像 發(fā)表于 04-25 21:03 ?467次閱讀
    HarmonyOS開(kāi)發(fā):【基于<b class='flag-5'>命令行</b>(安裝庫(kù)和<b class='flag-5'>工具</b>集)】

    香港vps的centos如何切換命令行和桌面?

    要在CentOS上切換命令行和桌面環(huán)境,您可以通過(guò)以下步驟進(jìn)行: 1、安裝桌面環(huán)境:如果您的CentOS VPS上還沒(méi)有安裝圖形桌面環(huán)境,您需要安裝一個(gè)。一般來(lái)說(shuō),常用的桌面環(huán)境有GNOME、KDE
    的頭像 發(fā)表于 04-10 17:41 ?694次閱讀

    STM32G070RB使用jlink命令行下載無(wú)法識(shí)別芯片怎么解決?

    STM32G070RB 使用jlink命令行下載無(wú)法識(shí)別芯片,想手動(dòng)添加芯片,請(qǐng)問(wèn)哪里可以下載驅(qū)動(dòng).elf文件 或者有什么方法能夠?qū)崿F(xiàn)jlink命令行下載
    發(fā)表于 04-02 06:15

    分享一個(gè)據(jù)說(shuō)是比Wget、Curl更強(qiáng)大的下載工具

    aria2 是一款輕量且高效的命令行下載工具。堪稱(chēng)下載利器!
    的頭像 發(fā)表于 02-20 10:24 ?896次閱讀
    分享一個(gè)據(jù)說(shuō)是比Wget、Curl更<b class='flag-5'>強(qiáng)大</b>的下載<b class='flag-5'>工具</b>!

    tasking的命令行控制中如何生成makefiles文件?

    tasking的命令行控制中如何生成makefiles文件?
    發(fā)表于 02-06 07:56
    主站蜘蛛池模板: 永久免费精品影视网站 | 超碰在线公开视频 | chinese东北老年tv视频 | 青青青久草 | 色噜噜狠狠一区二区三区 | 99re6久久热在线视频 | 在线观看视频一区 | 中文字幕在线永久 | 成人欧美一区二区三区白人 | 午夜福利院电影 | 古月娜下面好紧好爽 | 在线视频 日韩视频二区 | 日本精品无码久久久久APP | 爱暖暖1000部免费 | 亚洲人成无码久久久AAA片 | 嫩草欧美曰韩国产大片 | 考试考90就可以晚上和老师C | www免费看.男人的天堂 | 99久久爱re热6在线播放 | 国产精品人妻久久无码不卡 | 亚洲欧美综合中文字幕 | 婷婷亚洲五月色综合久久 | 国产精品一区二区亚瑟不卡 | 两性午夜色视频免费网站 | YY6080A旧里番在线观看 | 中国老太60old mantv | 重口味av | 日本阿v片在线播放免费 | 有码 亚洲 制服 国产 在线 | aa级毛片毛片免费观看久 | 2020国产成人精品免费视频 | 国产GV无码A片在线观看 | 日韩伦理电影秋霞影院 | 在线观看视频中文字幕 | 国产AV白丝爆浆在线播放 | 中文字幕精品AV内射夜夜夜 | 日本大尺码喷液过程视频 | 国产特级毛片AAAAAAA高清 | 最近中文字幕免费高清MV视频 | 日本无码免费久久久精品 | 亚洲欧美成人在线 |