計算機圖學程式語言 Taichi(太極)釋出 1.0.0 版本

2022-04-14 09:00:39

專為高效能運算機圖學設計的程式語言 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.matrixti.types.vector作為型別註釋。

Taichi 還支援基本的唯讀矩陣切片,使用mat[:,:]語法快速檢索矩陣的特定部分。

assert語句中的 f 字串支援

此版本支援在assert語句中包含 f 字串作為錯誤訊息,可以在 f 字串中包含標量變數。

 

更多詳細內容可在中檢視。

展開閱讀全文