Taichi(太极)v1.5.0 发布

Taichi(太极)v1.5.0 现已发布。Taichi Lang 是一种开源的、命令式的、用于高性能数值计算的并行编程语言。它被嵌入到 Python 中,并使用即时编译器 (JIT) 框架,例如 LLVM,将计算密集型的 Python 代码 offload 到本地 GPU 或 CPU 指令中。

具体更新内容如下:

弃用通知

  • ndarray 不再接受 field_dim,取而代之的是 ndim 参数。
  • [RFC] 弃用 ti.cc 后端以支持 TiRT 及其 C API

新功能

AOT

  • Taichi Runtime (TiRT) 现在支持 Apple 的 Metal API 和 OpenGL ES,以兼容旧的移动平台。现在 Taichi 程序可以部署到任何主流消费设备。
    注意 Taichi 程序在移动平台上的部署是实验性的。
  • Taichi AOT 现在完全支持 float16 dtype。

Ndarray

  • ndarrays 现在支持 Out of bound 检查

改进

Python前端

现在支持在基于 LLVM 的后端(CPU 和 CUDA 后端)上返回一个结构。该结构可以包含向量和矩阵,也可以与其他结构嵌套。示例:

s0 = ti.types.struct(a=ti.math.vec3, b=ti.i16)
s1 = ti.types.struct(a=ti.f32, b=s0)

@ti.kernel
def foo() -> s1:
    return 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}}

Performance

  • 支持 CUDA 后端在 half2 上的 atomic operation(计算能力 > 60)。可以使用 ti.init(half2_vectorization=True) 启用。此功能可以有效加速 Nerf 训练过程,参阅此 repo了解详情。

GGUI

  • GGUI 现在没有计算后端限制。除了之前由 GGUI 支持的 CPU、CUDA、Vulklan 之外,现在还可以使用 Metal、OpenGL、AMDGPU 或 DirectX 11。
  • GGUI 现在已经在 mesa 的软件光栅化器 lavapipe 上得到验证,你可以将此解决方案用于 headless server 可视化,或者在没有图形功能的服务器(例如 A100)上。
  • 添加 fps_limit 选项,用于调整 GGUI 中的最大帧率。

更多详情可查看发布说明

猜你喜欢

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