---
# System prepended metadata

title: 通用顯示卡/AI晶片 推論效率測試流程
tags: [硬體測試]

---

# 通用顯示卡/AI晶片 推論效率測試流程
## CUDA測試方法（RTX-4060）
### 利用GPU推論方法
#### 於 python 內安裝 onnxruntime-gpu
1. 依cuda, cudnn下載對應onnxruntime-gpu版本
版本對照：https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html
```
pip install onnxruntime-gpu==1.16.0
```
2. 於 cmd(命令提示字元) 依序輸入以下指令測試
```
python
import onnxruntime
onnxruntime.get_device()
onnxruntime.get_available_providers()
```
如果輸出結果為以下則代表安裝成功
```
'GPU'
['TensorrtExecutionProvider', 'CUDAExecutionProvider', 'CPUExecutionProvider']
```
### 第一次程式測試
*註：第一次執行主要確認主機缺少資源
1. 用 VSCode 開啟提供之資料夾(qualcomm-ai-chip)
>>File >>　Open Folder

2. 開啟 Terminal
![image](https://hackmd.io/_uploads/SkYwj5USR.png)
3. 依照 README 複製指令到Terminal
4. 如果有問題，依本地環境補足缺少的資源庫 
```
pip install (缺少的資源庫 EX:onnx)
```
5. 其他問題可以查看「常見問題」

### 程式測試與紀錄
#### 單執行緒的測試與紀錄
已將會用的指令打在README文件內
##### STEP 1：開啟 Terminal 並分割 
開啟VSCode後，Terminal >> New Terminal
![image](https://hackmd.io/_uploads/SkYwj5USR.png)
點擊紅框圖示即可分割 Terminal
![螢幕擷取畫面 2024-06-12 122215](https://hackmd.io/_uploads/Sk58EjIH0.png)
*註：左邊視窗用於開啟模型/auto_test ，右邊視窗用於開啟flask_test
##### STEP 2：於 README文件內找尋所需指令 (看推論的模型名稱)
##### STEP 3：點開 flask.test_py 修改程式
依據你要測試的模型選擇註解/取消註解的行數
*註：註解/取消註解的快捷鍵為CTRL + ? 
*注意：記得存檔！
![image](https://hackmd.io/_uploads/rJ_x7hUH0.png)
*EX：上圖能夠測試leda_ae的單執行緒
##### STEP 4：複製對應指令並貼到 Terminal 上執行
*註：先執行左邊視窗再執行右邊視窗
##### STEP 5：紀錄資料於表格
執行成功的話會出現以下訊息
![image](https://hackmd.io/_uploads/HyHx43IB0.png)

>>名稱對應表格內容

| avg_inference_time |  avg_process_time  | avg_FPS |
|:------------------:|:------------------:|:-------:|
|   推論秒數（ms）   | 前後處理秒數（ms） | 推論FPS |

		
#### 雙/多執行緒的測試與紀錄
已將會用的指令打在README文件內
##### STEP 1：開啟 Terminal 並分割 
開啟VSCode後，Terminal >> New Terminal
![image](https://hackmd.io/_uploads/SkYwj5USR.png)
點擊紅框圖示即可分割 Terminal
![螢幕擷取畫面 2024-06-12 122215](https://hackmd.io/_uploads/Sk58EjIH0.png)
*註：左邊視窗用於開啟模型/auto_test ，右邊視窗用於開啟flask_test
##### STEP 2：於 README文件內找尋所需指令 (看推論的模型名稱)
##### STEP 3：點開 flask.test2_py 修改程式
*由上往下修改
1. 依據你要測試的模型選擇註解/取消註解的行數
![image](https://hackmd.io/_uploads/ByrupnUBC.png)
*EX：上圖能夠測試yolov8_od的雙/多執行緒
2. 修改 urls 對應你是雙/多執行緒
![image](https://hackmd.io/_uploads/Sy4-R3LrA.png)
*EX：上圖能夠測試多執行緒
(如果是雙執行緒就是取消註解71行，註解掉74行)
##### STEP 4：點開 auto_test_py 修改程式
此程式協助我們同時多開模型，因此我們需要告訴他要開啟的模型及對應port號
![image](https://hackmd.io/_uploads/r14qR38rA.png)
*註：需要修改的是ports跟model，以此圖為例，開啟yolov8_od模型，ports為4000 ~ 4009
![image](https://hackmd.io/_uploads/Bks8kpUB0.png)
port號可以在頁面左邊flask資料夾內找到，例如leda_ae模型的port號就是5000 ~ 5009
##### STEP 5：複製對應指令並貼到 Terminal 上執行
*註：先執行左邊視窗再執行右邊視窗
##### STEP 6：紀錄資料於表格
執行成功的話會得到以下訊息
![image](https://hackmd.io/_uploads/rJa-e68BA.png)

>>名稱對應表格內容

| Avg_inference_time |  Process_time  | avg_FPS |
|:------------------:|:------------------:|:-------:|
|   推論秒數（ms）   | 前後處理秒數（ms） | 推論FPS |

## 常見問題

### 1. 該主機未安裝 CUDA / cuDNN
程式能夠正常執行，但無法用GPU進行推論(出現紅字的錯誤)。

#### 檢查主機是否有安裝CUDA
方法1. 檢查資料夾內容 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA
方法2. 於cmd輸入以下指令 
```
nvcc -V
```
如果有出現CUDA版本代表不是這個問題

#### 安裝CUDA
如果檢查後發現沒有資料，代表需要安裝CUDA才能推論

##### STEP1：確認CUDA適用版本
到桌面上用滑鼠按右鍵，進入NVIDIA控制面板
>>    說明 >> 系統資訊 >> 元素　
 


| ![image](https://hackmd.io/_uploads/S1zKf9UH0.png =500x)| ![image](https://hackmd.io/_uploads/rJ25Eq8H0.png =1000x) |
| -------- | -------- |

(以右邊圖為例，CUDA適用最高版本為12.4.125) 

##### STEP2：安裝CUDA
安裝前先確認是否需要更新驅動程式
![image](https://hackmd.io/_uploads/SyXHP9Lr0.png)

提供 CUDA 11.8 安裝連結
下載路徑 : https://developer.nvidia.com/cuda-11-8-0-download-archive

依照主機系統選擇安裝即可
##### STEP3：安裝cuDNN

下載cuDNN之前要先登入NVIDIA會員。然後依照需求下載版本。

下載路徑 : https://developer.nvidia.com/rdp/cudnn-archive

下載版本對應壓縮檔後，解壓縮可以看到三個資料夾
![image](https://hackmd.io/_uploads/SyF8u58SA.png)

進入本機 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.x 位置後
將剛剛解壓縮的檔案，依資料夾名稱將裡面的檔案複製到CUDA資料夾內對應位置即可
bin -> bin     ，   include -> include ， lib -> lib (三個資料夾)
### 2. 找不到 zlibwapi.dll 檔案位置

程式報錯如下：
```
use CUDAExecutionProvider
Could not locate zlibwapi.dll. Please make sure it is in your library path!
```
這是因為 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\bin 內缺少了zlibwapi.dll導致

*註：網路上會建議你去Nvidia官網下載檔案，但現在官網已經不提供下載了*

* STEP1：在 C:\Program Files 搜尋 zlibwapi.dll
* STEP2：找到檔案位置後，複製一份至 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.x\bin 資料夾內

重新整理後，再執行一次程式應該就不會報錯了。