專為高效能運算機圖學設計的程式語言 Taichi(太極)已經發布 1.0.0 版本,這是一個里程碑版本,同時帶來大量新特性,另外需要注意的是:許可證從 MIT 改成了 Apache 2.0 。
許可證變更
Taichi 的許可證在公開投票後從 MIT 更改為 Apache-2.0 。
Python 3.10 支援
此版本在所有受支援的作業系統(Windows、macOS 和 Linux)上支援 Python 3.10。
Manylinux2014 相容
在 v1.0.0 之前,Taichi 僅適用於支援 glibc 2.27+(例如 Ubuntu 18.04+)的 Linux 發行版。從 v1.0.0 開始,除了普通的 Taichi 輪子,Taichi 還提供了 manylinux2014 相容的輪子,可以在大多數現代 Linux 發行版上執行,包括 CentOS 7。
新功能
非 Python 部署解決方案
通過與 OPPO 美國研究中心合作,Taichi 提供了 Taichi AOT,這是一種用於在非 Python 環境(例如移動裝置)中部署核心的解決方案。
編譯的 Taichi 核心可以從 Python 程序中儲存,然後由載入和執行。通過一組 API, Python/Taichi 程式碼可以輕鬆部署在任何 C++ 環境中。點此。
注意,目前 Taichi 僅支援 C++ 執行時庫中的 Vulkan 後端。
real 函數(實驗)
所有 Taichi 函數在編譯期間都內聯到 Taichi 核心中。但是,如果太極函數呼叫過多,核心就會變得冗長並且需要更長的編譯時間。如果 Taichi 函數涉及,這一點尤其明顯。
這個版本引入了「real function」,一種新型的 Taichi 函數,它可以獨立編譯而不是內聯到核心中。這是一項實驗性功能,目前僅支援標量引數和標量返回值。
文字的型別註釋
從 v1.0.0 開始,可以為文字編寫型別註釋:
@ti.kernel
def foo():
a = ti.u32(2891336453) # similar to 2891336453u in C
math
模組
此版本新增了一個math
模組來支援 GLSL 標準向量操作,並使其更容易將 GLSL 著色器程式碼移植到 Taichi。
CLI 命令 ti gallery
此版本引入了 CLI 命令 ti gallery,允許在彈出視窗中選擇和執行 Taichi 範例。比如:
ti gallery
彈出一個視窗:
單擊可執行彈出視窗中的任何範例,控制檯會同時列印相應的原始碼。
改進
增強矩陣型別
從 v1.0.0 開始,Taichi 接受矩陣或向量型別作為引數和返回值,可以使用ti.types.matrix
或ti.types.vector
作為型別註釋。
Taichi 還支援基本的唯讀矩陣切片,使用mat[:,:]
語法快速檢索矩陣的特定部分。
assert
語句中的 f 字串支援
此版本支援在assert
語句中包含 f 字串作為錯誤訊息,可以在 f 字串中包含標量變數。
更多詳細內容可在中檢視。