Taichi v1.5.0 がリリースされました。Taichi Lang は、高性能数値計算用のオープン ソースの命令型並列プログラミング言語です。これは Python に組み込まれており、LLVM などのジャストインタイム コンパイラ (JIT) フレームワークを使用して、計算量の多い Python コードをネイティブ GPU または CPU 命令にオフロードします。
具体的なアップデートは次のとおりです。
非推奨の通知
- ndarray は field_dim を受け入れなくなり、ndim パラメータに置き換えられました。
- [RFC] TiRT とその C API を支持して ti.cc バックエンドを非推奨にします
新機能
AOT
- Taichi Runtime (TiRT) は、古いモバイル プラットフォームとの互換性のために、Apple の Metal API と OpenGL ES をサポートするようになりました。Taichi プログラムは、あらゆる主要な消費者向けデバイスに展開できるようになりました。
モバイル プラットフォームでの Taichi プログラムの展開は実験的なものであることに注意してください。 - Taichi AOT は float16 dtype を完全にサポートするようになりました。
Ndarray
- ndarrays が範囲外チェックをサポートするようになりました
向上
Python フロントエンド
LLVM ベースのバックエンド (CPU および CUDA バックエンド) で構造体を返すことがサポートされるようになりました。この構造体にはベクトルと行列を含めることができ、他の構造体と入れ子にすることができます。例:
s0 = ti . タイプ。構造体( a = ti . math . vec3 , b = ti . i16 ) s1 = ti . タイプ。struct ( a = ti . f32 , b = s0 ) @ ti . カーネルdef foo () -> s1 : s1を返す( a = 1 , b = s0 ( a = ti . math . vec3 ( 100 , 0.2 , 3 ), b = 1 )) print ( foo ()) # {'a': 1.0, 'b': {'a': [100.0 、0.2、3.0]、「b」: 1}}
パフォーマンス
- half2 で CUDA バックエンドのアトミック操作をサポートします (計算能力 > 60)。ti.init(half2_vectorization=True) で有効にできます。この機能は、Nerf トレーニング プロセスを効果的に高速化できます。詳細については、このリポジトリを参照してください。
GGUI
- GGUI には計算バックエンドの制限がなくなりました。以前 GGUI でサポートされていた CPU、CUDA、Vulklan に加えて、Metal、OpenGL、AMDGPU、または DirectX 11 も使用できるようになりました。
- GGUI は現在、mesa のソフトウェア ラスタライザー lavapipe で検証されています。このソリューションは、ヘッドレス サーバー ビジュアライゼーション、またはグラフィック機能のないサーバー (A100 など) で使用できます。
- GGUI で最大フレーム レートを調整するための fps_limit オプションが追加されました。
詳細については、リリース ノートを参照してください。