成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

大模型面經—如何評估顯卡利用率及顯卡運用優化方法 原創

發布于 2024-11-19 12:51
瀏覽
0收藏

?本篇總結了顯卡利用率評估方法及顯卡運用優化方法。

本篇來總結一些顯卡優化的經驗,還是按照面經的形式給出,希望能給到大家一些實際訓練效率優化的幫助~

下面是一個快捷目錄。

一、如何評估顯卡利用率?

二、如何優化顯存利用率?

 一、如何評估顯卡利用率

使用deepseed時,zero3如果沒有 nvlink,多卡訓練下會變慢很多,下面有三種方法來評估訓練時發揮了多少GPU性能。

1. flops 比值法

采用Nvidia可參考的顯卡峰值計算速度進行計算

gpu 利用率 = 實測的flops/顯卡理論上的峰值flops 

實測的flops可以直接用 DeepSpeed Flops Profiler直接得到。

舉例:deepspeed 實測flops 100tflops,而用的是A100卡理論峰值312tflops,可以得到GPU 利用率只有 32.05%

2. throughout 估計法

根據論文中的訓練速度或者吞吐量進行計算,一般論文中會說明 3300 token/s/gpu

gpu 利用率 = 實際吞吐量 / 論文中的吞吐量(假設利用率100%)

舉例: 

實測訓練時處理樣本速度為 3 example/s,一共有4卡,max length 2048,則吞吐量為 1536 token/s/gpu ;

根據llama 論文知道,他們訓練7B模型的吞吐量約為 3300 token/s/gpu,那么GPU利用率只有46.54%

3. torch profiler 分析法

利用torch profiler 記錄各個函數的時間,將結果在tensorboard上展示,在gpu kenel視圖下, 可以看到tensor core 的利用率,比如30%。

profiler是一個用于分析訓練的一體化工具。它可以記錄CPU操作時間、CUDA內核計時、內存消耗歷史,只需要將訓練嵌入到分析器上下文中,如下所示:

import torch.autograd.profiler as profiler


 with profiler.profile(
   activities=[ProfilerActivity.CPU, ProfilerActivity.CUDA],
   on_trace_ready=torch.profiler.tensorboard_trace_handler('./logs'),
 ) as prof:
   train(args)

然后就可以啟動tensorboard查看分析軌跡。注意這里需要先安裝torch-tb-profiler。

最推薦的還是方法三,可以比較詳細地監控訓練過程。

 二、如何優化顯存利用率 

如果發現GPU利用率很低,那么需要采取一些優化措施。以下是一些優化 GPU 性能的方法:

1. 減少日志IO操作頻率

輸出頻率過多非常影響訓練效率,所以一旦開始正式訓練盡量把日志精簡;有必要的話print也盡量少一些。

2. 基于類似于torch profiler 這樣的性能監控方法結合具體的情況分析瓶頸

3. 數據加載效率過低

有可能是數據加載速度慢,導致 GPU 等待 CPU 提供數據。

可以通過下面的方法:

1)增加數據加載線程數, 使用框架(如 PyTorch 或 TensorFlow)中 `DataLoader` 的 `num_workers` 參數增加數據加載的并發。

2)使用數據預緩存,在訓練開始前,將數據轉換為 Tensor 并存儲到高效格式(如 TensorFlow 的 TFRecord 或 PyTorch 的 `.pt` 文件)。

3)啟用異步加載,利用異步數據加載技術,例如 PyTorch 的 `prefetch`。

4)使用更快的存儲設備,如果數據集較大,建議將數據存儲在 NVMe SSD 或 RAMDisk 上。

4. 模型架構優化

可以剪枝,簡化架構,使用 cuDNN 的優化版本或 TensorRT 加速等更高效的算子進行計算。

5. 調整batch大小

有可能batch數過小,可以增大批量大小,盡量增大 batch_size 以提高并行計算效率,但需注意顯存是否足夠;并且進行混合精度訓練, 使用混合精度(float16 + float32)訓練(如 PyTorch 的 `torch.cuda.amp` 或 TensorFlow 的 `mixed_float16`),減少顯存占用,從而支持更大的批量。

6. 學習率和優化器調整

還有一個可能是訓練配置不對,學習率不合理或優化器效率較低。

可以使用合適的學習率策略(如 Warmup、Cosine Annealing);或者使用高效的優化器(如 AdamW)或框架支持的 fused 優化器(如 PyTorch 的 `fused_adam`)。

參考文獻

[1]【DeepSpeed 教程翻譯】三,在 DeepSpeed 中使用 PyTorch Profiler做性能調試和Flops Profiler教程翻譯 - 知乎

[2] 【LLM面試題】顯存問題/評估微調所需顯存_llm微調需要顯存多大-CSDN博客

?

文轉載自公眾號瓦力算法學研所,作者:喜歡瓦力的卷卷

原文鏈接:??https://mp.weixin.qq.com/s/8HezD5aWVnb_1nDJ236DvQ??

?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 手机在线一区二区三区 | 欧美日韩一卡 | 午夜免费在线观看 | 久久高清国产视频 | 97精品超碰一区二区三区 | 成人欧美一区二区三区黑人孕妇 | 成人精品一区二区三区 | 欧美黄色片 | 久久精彩视频 | 欧美在线一区二区三区 | 中文一区 | 欧美性生活免费 | 九九九久久国产免费 | 日本黄色激情视频 | 九九热视频这里只有精品 | 黄色在线观看国产 | 日韩欧美在线播放 | 日韩高清一区 | 欧美一二三四成人免费视频 | 日韩精品成人免费观看视频 | 天堂色 | 欧美一区免费在线观看 | 亚洲在线| 成人在线观看免费视频 | 欧美亚洲视频 | 亚洲精品欧美 | 一区二区三区四区不卡视频 | 亚洲一区二区精品视频在线观看 | 丁香六月伊人 | 日韩精品视频在线免费观看 | 中文字幕 在线观看 | 亚洲a毛片 | 色橹橹欧美在线观看视频高清 | 久久久亚洲 | 免费天天干 | 日韩看片| 一区二区三区国产 | 在线看片国产精品 | www.99re| 色五月激情五月 | h视频免费在线观看 |