本日はUnityの技術調査枠です。
Unity AIのドキュメントを読みながら実際に操作を試して記事に残します。
推論エンジンを使用する場合、インスタンス化するワーカーとテンソルに対してDisposeを呼び出すことが重要です。
さらにReadbackAndCloneメソッドから返されるクローン出力テンソルに対してもDisposeを呼び出すようにしてください。
Note
グラフィックス・プロセッシング・ユニット (GPU) リソースを解放するにはDisposeを呼び出す必要があります。
void OnDestroy()
{
worker?.Dispose();
foreach (var input in inputs)
{
input.Dispose();
}
}
PeekOutputメソッドを使用してワーカーからテンソルのハンドルを取得した場合、メモリアロケータはそのメモリの管理を継続します。
Disposeメソッドを呼び出す必要はありません。
計算バッファサイズの制限
推論エンジンでテンソルを扱う場合、計算バッファのサイズには一定の制限があります。
これらの制限はハードウェアやプラットフォームの仕様によって異なる場合がありますが、以下の一般的なガイドラインが適用されます。
内部インデックスの制限により、テンソルの要素数は2の31乗以下にする必要があります。
補助リソースの割り当て
一部の演算子では追加の補助リソースが必要になる場合があり、特定のシナリオではテンソルの最大許容サイズがさらに小さくなる可能性があります。
これらのリソースは入力テンソルのサイズと演算の種類によって異なります。