カーネルでの printf() の使用 - 2023.2 日本語

AI エンジン ツールおよびフロー ユーザー ガイド (UG1076)

Document ID
UG1076
Release Date
2023-12-04
Version
2023.2 日本語

ベクター データ型は、AI エンジン カーネル コードで最もよく使用されるデータ型です。カーネルのベクター演算をデバッグするには、printf を使用すると有益です。

ベクター データ型での printf() の使用

printf() を使用してベクター データ型を表示するには、次の手法を証できます。

v4cint16 input_vector;
...
int16_t* print_ptr =(int16_t*)&input_vector;
    for (int qq=0; qq<4;qq++) //4 here so we print two int16s, real + imag per loop.
    printf("vector re: %d, im: %d\r\n",print_ptr[2*qq],print_ptr[2*qq+1]);
}

AI エンジン シミュレータでは、printf() 出力を使用するには --profile オプションが必要です。x86 シミュレータでは、printf 呼び出しをイネーブルにするのに追加のオプションは必要ありません。これが、x86 シミュレータの利点の 1 つです。

重要: AMD では、カーネルおよびホスト コードでは、std::cout を使用しないことをお勧めします。x86 シミュレータはマルチスレッドで実行されるので、std::cout を使用すると、その出力が混ざって表示されます。その代わり、printf() を使用することをお勧めします。