成人sese/国产免费人成视频在线观看/九色 在线/免费观看又色又爽又黄的/啪在线视频/日日做日日摸夜夜爽

首頁 娛樂 > 正文

MegEngine 使用小技巧:Profiler使用手冊

0.寫在前面

“xx,R 那邊反應多機訓練速度慢,你看一下什么情況”

“xxx,為什么 MGE 更新之后,xxx 網絡訓練變慢了,你看一下”

這是組內日常對話


(資料圖)

然后有人日常背鍋

組員的狀態是:提性能,提性能,還是 TMD 提性能

據不完全統計,有 80% 的性能問題其實是因為訓練代碼寫的不夠好,讓 MGE 有力使不出來

包括但不限于以下情況

1)沒開 fast_run

2)頻繁使用 numpy 進行同步

3)沒有用 make_allreduce_cb,讓計算通信串行

4)。。。

次數多了,就發現這玩意太花時間了,而且每次的步驟都千篇一律,為啥一定要我來做,所以寫這篇文章進行總結,方便大家也方便自己

1.Profiler 介紹

首先我們要認識 Profiler 這個東西

簡單來說,Profiler 以時間軸的形式記錄了所有算子的運行時間

通過 Profile 結果,我們可以很快的發現這段代碼為什么跑的慢

是做了多余的工作?還是計算資源的浪費?或者是算子本身的性能很差,需要替換成別的算子

這是一個簡單的 profile 結果展示

大部分情況下我們只關注 gpu thread,每一個 gpu thread 對應一個 cuda stream,上面都是運行在這個 cuda stream 上的算子

2.使用方式

PS:靜態圖的統計信息還不夠完善(受到圖優化影響),profile 結果相對動態圖的不夠友好

from megengine.utils.profiler import profile, Profiler # 裝飾器寫法@profile()def train_step(data, label, *, optimizer, gm, model)    with gm:        logits = model(data)        loss = F.loss.cross_entropy(logits, label)        gm.backward(loss)        optimizer.step().clear_grad()    return loss # with 寫法# 訓練過程中最好只有一個profiler實例,因為profiler會在析構時自動dump出結果,如果有多個實例的話每個iter都會dump,非常慢profiler = Profiler() def train_step(data, label, *, optimizer, gm, model)    with profiler:       with gm:           logits = model(data)           loss = F.loss.cross_entropy(logits, label)           gm.backward(loss)           optimizer.step().clear_grad()    return loss

??注意,profiler 默認會在析構的時候導出 profile 結果,也可以手動調用 profiler.dump 方法手動 dump

參數說明:

Profiler的構造函數支持如下參數:

  • path: profile 數據的存儲路徑,默認為當前路徑下的profile文件夾.
  • format: 輸出數據的格式,默認為chrome_timeline.json,是 Chrome 支持的一種標準格式,以時間線的形式展現 profiling 結果. 可選項還有有 memory_flow.svg,以時間x地址空間的形式展示內存使用情況.
  • formats: 若需要的輸出格式不止一種,可以在 formats 參數里列出.
  • sample_rate: 若該項不為零,則每隔 n 個 op 會統計一次顯存信息,分析數據時可以繪制顯存占用曲線,默認為 0.
  • profile_device: 是否記錄 gpu 耗時,默認為 True.
  • with_scopes: 是否額外記錄 functional/ tensor method 等 python API 對應的 scope, 默認為 False.
  • with_backtrace: 是否記錄 op/event 對應的 python 調用棧, 默認為 False, 開啟會使記錄數據文件體積變大.

scope 使用介紹

我們會自動在 module 的 forward 還有 backward 以及 step 步驟中加入 scope,scope 會在 host thread 上顯示,能看出 op 屬于哪一個 module 的什么階段

也可以自己加上 scope

from megengine.utils.profiler import Profiler, scope def main()    with Profiler():        x = Tensor(1)        with scope("Add"):            y = x+1        with scope("Mul"):            z = x*3

默認情況下 profiler 只會記錄 module forward, backward, step 三類 scope, 用戶可以在構造 Profiler 對象時傳入參數with_scopes = True額外記錄 functionaltensor methodapi調用對應的 scope

開啟 with_scopes選項后額外記錄了 BatchNorm2d Module內部調用的 functional / tensor method API調用 scope

開啟 with_scopes 選項后額外記錄了 backward scope, 該 scope 用于記錄反向計算序列對應的前向算子, 可用于查找反向計算中有性能問題的算子是由哪種算子前向計算產生。下圖 scope 表示 Broadcast, SetSubtensor 等算子是由 Subtensor 反向計算產生的。

3.可視化顯示

推薦使用perfetto查看 profile 結果,也可以用 Chrome 開發者模式(F12)的 Performance 模塊查看 timeline 格式文件,也可以用chrome://tracing/進行查看

以下介紹的都是基于 perfetto 的操作方式

1)統計

可以選中一段連續的時間段,查看這一個時間段的統計結果

下方會顯示事件統計結果,可以看到事件實際占用時間(Wall duration)(可以結合總時間算出空閑時間),可以按照總占用時間排序,也可以按照平均時間排序

2)依賴關系

在 host thread上,op 會記錄對應的 input和output 以及相應的依賴關系,可以依據箭頭找到 input 依賴的上一個 op,也可以通過下方 flow event 點擊移動到上一個或者下一個

我們還能找到 op 對應的 host 時間和 gpu 時間,點擊 op 可以看到在不同 thread(cpu,gpu)占用的時間

3)查看顯存使用, gpu 利用率等指標

profiler 除了記錄時間算子執行時間外,還會記錄一些與顯存和性能相關的指標。gpu_usage_ratio 記錄程序執行平均的 gpu 利用率(gpu 執行 kernel 時間占總時間的比例),gpu_usage_ratio 低說明程序 host 側是瓶頸 。gpux:x alloc_mem_value 記錄了gpux 顯存使用量隨時間的變化的曲線, 需要把 sample_rate 設置為大于 0 的整數(sampe rate 代表每隔 n 個 op 記錄一次顯存使用量)

4)放大縮小

可以拖動上方時間軸的起始和結束點來修改起始點和結束點,也可以通過放大縮小手勢進行放大縮小

中間豎線上面的灰色小方塊就是可以拖動的點

4.常見調試技巧(附使用例子

1)多余計算

yolox 例子,forward,backward,step 運行完成了,但是后面多出了很多的 reshape 操作(一般認為 reshape 無實際計算,所以基本看作是浪費

找到原因后結果如下(5s->1.3s)

2)計算通信串行(請認準 make_allreduce_cb)

allreduce 通信在 gpu0:1,如果發現通信在 gpu0:0 那就是用錯了

3)host 性能慢,gpu 利用率不高

cpu 時間和 gpu 時間基本上一致,很可疑

放大仔細看,gpu 運行時間中有很多空隙,而且點擊對應 op 查看依賴關系,可以看出中間的空隙時間是在等待 host 進行 launch cuda kernel

4)使用 backtrace 記錄功能查找性能瓶頸部分對應源碼

上述示例介紹了如何從 profile 結果中發現性能異常的部分, profiler 提供了 backtrace 調用棧記錄功能, 方便用戶找到異常部分對應的訓練代碼源碼。backtrace 記錄會記錄算子的 dispatch/kernel 執行,TensorWaitProperty 等事件對應的 python 調用棧。

可以在構造 Profiler 對象時通過傳入 with_backtrace = True 開啟調用棧記錄功能。 開啟該選項后 profiler 保存數據文件體積會增大。

用戶可以在 perfetto UI 界面上點擊 op 查看其對應的源碼。

下圖 profiler 結果中 CompiledOp[IOU] 算子執行時間較長, 通過記錄的 backtrace 可以發現該算子是檢測模型計算 loss 部分調用的。

下圖中 interpreter 線程中某個 TensorWaitProp 占用時間很長,可能會拖慢 host 執行速度,導致 gpu 空閑。

(TensorWaitProp 可能是由 tensor.shape, tensor.numpy() 等方法調用產生的, 會讓 host 側等待 device 執行,以獲取 Tensor 的 value 或 shape 屬性)

通過調用棧可以發現該事件是由 basedet 檢測模型 get_ground_truth 方法中的某個 getitem產生的 ( __getitem__中使用了 tensor shape 屬性觸發了 host 側的 sync)。

更多 MegEngine 信息獲取,您可以:查看文檔和GitHub 項目,或加入 MegEngine 用戶交流 QQ 群:1029741705。歡迎參與 MegEngine 社區貢獻,成為Awesome MegEngineer,榮譽證書、定制禮品享不停。

關鍵詞:

最近更新

關于本站 管理團隊 版權申明 網站地圖 聯系合作 招聘信息

Copyright © 2005-2023 創投網 - www.zhigu.net.cn All rights reserved
聯系我們:39 60 29 14 2@qq.com
皖ICP備2022009963號-3

主站蜘蛛池模板: 天堂欧美城网站网址 | 国产人妖在线播放 | 国产xxxxx在线观看免费 | 欧美在线黄色 | 97性潮久久久久久久久动漫 | 免费做a爰片久久毛片a片下载 | 久久久无码精品一区二区三区蜜桃 | av大片网站 | 国产又色又爽无遮挡免费软件 | 国产精品久久久久久久久久久久冷 | 日本免费更新一二三区不卡 | 国产又粗又硬的视频 | 91成人在线看| 国产羞羞网站 | av亚洲产国偷v产偷v自拍麻豆 | 欧美成人一二三 | 亚洲天堂伊人网 | 77777_亚洲午夜久久多人 | 六月丁香综合网 | 亚洲综合小说专区图片 | 色哟哟免费视频播放网站 | 久久无码字幕中文久久无码 | 99精品国产在热久久无毒不卡 | 永久天堂网av手机版 | 吃奶摸下的激烈视频 | 无码人妻丰满熟妇区五十路百度 | 欧美大胆性生活 | 丰满少妇夜夜爽爽高潮水 | 九一亚色视频 | 九九在线视频免费观看精彩 | 国产精品免费_区二区三区观看 | 国产成人无码aⅴ片在线观看 | 五月婷婷中文网 | www.日日夜夜撸 | 欧美日韩后 | 久久久久麻豆v国产精华液好用吗 | 国产精品免费av一区二区 | 五月色婷婷丁香无码三级 | 天天舔天天爱 | 亚洲一区二区色情苍井空 | 久久婷婷五月综合色国产 | 久久久噜噜噜久久久精品 | 美女131mm久久爽爽免费 | 91视频合集 | 人妻av资源先锋影音av资源 | 中文精品一卡2卡3卡4卡国色 | 91精品国产综合久久国产大片 | 蜜臀久久99精品久久久酒店新书 | 一本色道av | 成年人视频在线免费观看 | 亚洲一区无码精品色 | 亚欧乱色国产精品免费 | 婷婷激情五月综合 | 女人天堂久久爱av四季av | 久久久久久久久久久久久9999 | 日产精品久久久久 | 国产二区在线看 | 亚洲视频一二三区 | 亚洲黄色第一页 | 主站蜘蛛池模板: 蛛词}| 国产又黄又大又粗的视频 | 国产欧美日韩a片免费软件 中文字幕无码乱人伦在线 欧美美女爱爱视频 | 国内自拍一二三四2021 | 欧美aa级 | 日韩久久网 | 欧美日韩国产精品自在自线 | 一本色道久久综合亚洲高 | 国产乱淫av国产8 | 国产精品乱码一区二区三区视频 | 丰满岳妇饱满的双乳在线观看 | 久久人久久 | 麻豆蜜桃av蜜臀av色欲av | 日本三级韩国三级三级a级按摩 | 国产乱xxxx国语对白 | 91丨porny丨国产麻豆 | 国产成人美女视频网站 | 国产午夜精品一区二区三区欧美 | 精品一卡2卡三卡4卡免费网站 | 久久亚洲国产精品123区 | 免费99 | 国产精品自拍片 | 日本中文字幕在线观看视频 | 国产又黄又爽又刺激的免费网址 | 亚洲区精品区日韩区综合区 | 国产亚洲综合区成人国产 | 欧美不卡三区 | 夜夜嗨视频| 亚洲午夜网站 | 男女拍拍拍网站 | 人妻少妇偷人无码视频 | 日本亚洲vr欧美不卡高清专区 | 4438全国最大成人网 | 乌克兰xxxxx少妇精品二区 | 欧美一二区 | 亚洲一区a| 狠狠色丁香婷婷综合久久图片 | 亚洲国产成人精品久久久国产成人 | 免费999精品国产自在现线 | 中文字幕影视 | 国内精品久久久 | 欧洲丰满老熟xxxx | 四川丰满少妇毛片新婚之夜 | 中文字幕在线观看不卡 | 玖玖热综合一区二区三区 | 亚洲精品成人网线在线播放va | 91大神在线观看视频 | 全部免费播放在线毛片 | 女人与公拘交酡全过程 | 人人爽人人爽人人爽人人爽 | 无码人妻久久一区二区三区免费 | 亚洲欧美a | 免费裸体美女网站 | 亚洲成av人片天堂网 | 男人和女人做爽爽免费视频 | 97免费人妻在线视频 | 99久久国产综合精品成人影院 | 内射白浆一区二区在线观看 | 四虎永久在线精品视频 | 人人妻人人插视频 | 主站蜘蛛池模板: 蛛词}| 深夜国产福利 | 久久男人 | 天天舔天天操天天干 | 久久精品黄色 | 国产午夜免费高清久久影院 | 国产午夜一级片 | 国产做国产爱免费视频 | 四虎在线免费 | 狠狠色丁香久久婷婷综合丁香 | 精品偷 | 上司人妻互换hd无码中文 | 无码精品一区二区三区在线 | 久久精品中文字幕一区二区三区 | 久久99成人| 国产黄色片视频 | 日本黄色片播放 | 一区二区三区亚洲视频 | 亚洲大尺度在线观看 | 国产超碰人人爽人人做人人爱 | 国产精品久久久国产盗摄蜜臀 | 巨乳中文字幕 | 久久久一本 | 欧洲免费无线码在线一区 | 在教室伦流澡到高潮hnp视频 | 黄色片免费看视频 | 久久精品国产99国产精品最新 | 国产福利免费在线观看 | 国产精品极品在线拍 | 亚洲中文字幕久久精品无码app | 56pao国产成人免费视频 | 果冻传媒mv免费播放在线观看 | 日韩亚州欧美 | 日日人人 | 国产91网| 3d动漫精品啪啪一区二区下载 | 亚洲裸体视频 | 在线视频二区 | 久久精品亚洲精品 | 色哟哟最新在线观看入口 | 在线亚洲韩国日本高清二区 | 亚洲福利一区二区三区 | 中文字幕亚洲乱码熟女在线 | 曰本无码不卡高清av一二 | 国产无遮挡一区二区三区毛片日本 | 久久久久久久9 | 99欧美精品 | 综合激情av | 99国产成人精品 | 国产免费传媒av片在线 | 黄色视免费 | 伊人中文 | 国产大片一区 | 国产日产欧产精品精品浪潮 | 高清无码午夜福利在线观看 | 无码人妻丰满熟妇精品区 | 国产欧美日韩高清 | 在线天堂1 | 久久99精品久久久久久无毒不卡8 | 欧美性猛交xxxx黑人猛交 | 主站蜘蛛池模板: 蛛词}| 人妻洗澡被强公日日澡电影 | 国产精品色一区二区三区 | 亚洲另类激情综合偷自拍图片 | 天堂а在线中文在线新版 | 亚洲欧美成人久久综合中文网 | 操欧美美女 | 狠狠人妻久久久久久综合 | 四虎影视国产精品免费久久 | 亚洲aav| 天天激情综合 | 成年男人午夜片 | 美女无遮挡免费视频网站 | 无码精品a∨在线观看 | 一级片黄色的 | 精品无码人妻一区二区免费蜜桃 | 亚洲肥妇 | 一女被多男玩喷潮视频 | 欧洲精品久久久 | 成人免费无码大片a毛片户外 | 激情五月婷婷色 | 韩国av不卡| 男人和女人啪啪 | 日韩精品一区二区在线播放 | 夜夜高潮夜夜爽精品视频 | 亚洲a片v一区二区三区有声 | 国产成人福利片 | 综合色站导航 | 国产日本视频 | 日韩在线天堂 | 一级特黄色毛片 | 久久精品蜜芽亚洲国产av | 少妇激情一区二区三区 | 天堂中文在线最新 | 欧美成人不卡 | 午夜a理论片在线播放 | 我要操网站 | 日韩美女在线观看一区 | 日产欧美国产日韩精品 | 天天天天天天天天干 | 日本一区二区不卡在线 | 成人亚洲天堂 | 一区二区欧美在线观看 | 国产偷人妻精品一区二区在线 | 国产精品毛片大码女人 | 人人妻人人澡人人爽欧美一区 | 亚洲综合图片区自拍区 | 成人免费午夜视频69影院 | 国产精品亚洲专区无码老司国 | 亚洲中国色老太 | 国产欧美日韩a片免费软件 中文字幕无码乱人伦在线 欧美美女爱爱视频 | 天天干天天操av | 国产艹逼视频 | 精品久久国产字幕高潮 | 美女操操操 | 久久综合久久美利坚合众国 | 国产免费久久精品99re丫丫 | 无码国产一区二区免费 | 日韩手机在线视频 | 在线播放的av | 主站蜘蛛池模板: 蛛词}| 炮机高潮痉挛哭叫失禁小说 | 少妇特黄a片一区二区三区 欧美性在线视频 | 中国免费黄色 | 亚洲欧美在线x视频 | 国产精品精品自在线拍 | 成人亚洲性情网站www在线观看 | 九九热在线视频 | 夜夜爽夜夜操 | 永久免费无码av网站在线观看 | 色欲国产精品一区成人精品 | a一区二区三区乱码在线 | 欧洲 | 免费啪视频 | av狠狠| 色婷婷婷丁香亚洲综合 | 欧美精品一区二区视频 | 中文字幕在线精品 | 欧美在线你懂的 | 国产成人一区二区三区小说 | 又粗又猛又爽黄老大爷视频 | 超碰人人人人人人 | 狂野欧美激情性xxxx在线观看 | 国产aaaaaaa | 大ji巴好深好爽又大又粗视频 | 中国一级片黄色一级片黄 | av激情网 | 日韩在线观看一区二区 | 亚洲 自拍 中文 欧美 精品 | 精品少妇人妻av无码久久 | 视频毛片 | 不卡av中文字幕手机看 | 永久免费观看国产裸体美女 | 韩国精品一区二区三区无码视频 | 免费国产成人 | 男男gv在线播放网站亚洲 | 女儿国3在线观看免费版高清 | 天堂中文字幕 | 在线亚洲综合欧美网站首页 | 中国破外女出血毛片 | 97在线视频免费人妻 | 成人免费视频网站 | 免费亚洲婷婷 | www.国产麻豆 | 中文字字幕在线中文无码 | 亚洲欧美色视频 | 精品偷自拍另类在线观看 | 国产精品人成视频免费国产 | 亚洲 欧美 动漫 少妇 自拍 | 国产又黄又爽又色的免费视频白丝 | 熟睡人妻被讨厌的公侵犯深田咏美 | 国产高清小视频 | 天天翘av| 婷婷伊人五月色噜噜精品一区 | 麻豆精品一区二区三区在线观看 | 二级特黄绝大片免费视频大片 | 午夜国产福利视频 | 久久国产精品无码一区二区三区 | 激情综合亚洲色婷婷五月app | 九九免费观看视频 | 91婷婷射|