图形学编程语言 Taichi(太极)发布 1.0.0 版本

专为高性能计算机图形学设计的编程语言 Taichi(太极)已经发布 1.0.0 版本,这是一个里程碑版本,同时带来大量新特性,另外需要注意的是:许可证从 MIT 改成了 Apache 2.0 。

许可证变更

Taichi 的许可证在公开投票后从 MIT 更改为 Apache-2.0 。#4607

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 进程中保存,然后由提供的 C++ 运行时库加载和运行。通过一组 API, Python/Taichi 代码可以轻松部署在任何 C++ 环境中。点此查看taichi-aot-demorepo

注意,目前 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 字符串中包含标量变量。

 

更多详细内容可在发行公告中查看。

猜你喜欢

转载自www.oschina.net/news/191119/taichi-1-0-0-released