Open Kotaro7750 opened 3 years ago
まず, dpuRunTask()
の返り値を確認して,これが成功しているかを確認する.
runResnet50()
の先頭で,
assert(taskResnet50);
をしている.
int main(void) {
/* DPU Kernel/Task for running ResNet50 */
DPUKernel *kernelResnet50;
DPUTask *taskResnet50;
/* Attach to DPU driver and prepare for running */
dpuOpen();
/* Load DPU Kernel for ResNet50 */
kernelResnet50 = dpuLoadKernel(KRENEL_RESNET50);
/* Create DPU Task for ResNet50 */
taskResnet50 = dpuCreateTask(kernelResnet50, 0);
/* Run ResNet50 Task */
runResnet50(taskResnet50);
/* Destroy DPU Task & free resources */
dpuDestroyTask(taskResnet50);
/* Destroy DPU Kernel & free resources */
dpuDestroyKernel(kernelResnet50);
/* Dettach from DPU driver & free resources */
dpuClose();
return 0;
}
dpuCreateTask()
例
int dpuCreateTask
(
DPUKernel *kernel,
int mode
);
引数
kernel
無効にする DPU カーネルへのポインター。
mode
DPU タスクの動作モードで、3 つのモードがある。
T_MODE_NORMAL
デフォルト モードで、モード値「0」と同じ。
T_MODE_PROF
DPU タスクの実行中にレイヤーごとにプロファイリング情報を生成する。これは性能分析に有効。
T_MODE_DEBUG
デバッグとして、DPU タスクの CODE/BIAS/WEIGHT/INPUT/OUTPUT の生データをレイヤーごとにダンプする。
説明
DPU カーネルから DPU タスクをインスタンシエートし、対応する DPU メモリ バッファーを割り当てる。
戻り値
成功した場合は 0、失敗した場合はエラーを報告する。
インクルード ファイル
n2cube.h
入力可能なインターフェイス
Vitis AI v1.0
おかしいな,dpuCreateTask()
の借り値は成功したら0
のはず,これはポインタじゃないね
taskResnet50 is 0x55a270ff00
公式ドキュメントが間違っている.返り値はポインタ.
n2cube.py
def dpuRunTask(task):
"""
Launch the running of DPU Task
task: DPU Task. This parameter should be gotten from the result of dpuCreatTask()
Returns: 0 on success, or negative value in case of any failure
"""
return pyc_libn2cube.pyc_dpuRunTask(task)
Qiitaに書いてあるようにやって実機で動作させたところ,