Taichi(太极)v1.6.0 发布


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

具体更新内容如下:

弃用通知

  • 删除了一些很久以前就弃用的 API。见下表:
Removed API Replace with
Using atomic operations like a.atomic_add(b) ti.atomic_add(a, b) or a += b
Using is and is not inside Taichi kernel and Taichi function Not supported
Ndrange for loop with the number of the loop variables not equal to the dimension of the ndrange Not supported
ti.ui.make_camera() ti.ui.Camera()
ti.ui.Window.write_image() ti.ui.Window.save_image()
ti.SOA ti.Layout.SOA
ti.AOS ti.Layout.AOS
ti.print_profile_info ti.profiler.print_scoped_profiler_info
ti.clear_profile_info ti.profiler.clear_scoped_profiler_info
ti.print_memory_profile_info ti.profiler.print_memory_profiler_info
ti.CuptiMetric ti.profiler.CuptiMetric
ti.get_predefined_cupti_metrics ti.profiler.get_predefined_cupti_metrics
ti.print_kernel_profile_info ti.profiler.print_kernel_profiler_info
ti.query_kernel_profile_info ti.profiler.query_kernel_profiler_info
ti.clear_kernel_profile_info ti.profiler.clear_kernel_profiler_info
ti.kernel_profiler_total_time ti.profiler.get_kernel_profiler_total_time
ti.set_kernel_profiler_toolkit ti.profiler.set_kernel_profiler_toolkit
ti.set_kernel_profile_metrics ti.profiler.set_kernel_profiler_metrics
ti.collect_kernel_profile_metrics ti.profiler.collect_kernel_profiler_metrics
ti.VideoManager ti.tools.VideoManager
ti.PLYWriter ti.tools.PLYWriter
ti.imread ti.tools.imread
ti.imresize ti.tools.imresize
ti.imshow ti.tools.imshow
ti.imwrite ti.tools.imwrite
ti.ext_arr ti.types.ndarray
ti.any_arr ti.types.ndarray
ti.Tape ti.ad.Tape
ti.clear_all_gradients ti.ad.clear_all_gradients
ti.linalg.sparse_matrix_builder ti.types.sparse_matrix_builder
  • 不再弃用 Taichi 内核中的内置 min/max 函数。
  • 弃用了计算图参数声明中的一些参数,它们将在 v1.7.0 中删除。包括:
    • scalar 和 ndarray 的element_shape参数
    • texture 的shapechannel_formatnum_channels参数
  • cc后端将在下一个版本中删除 ( v1.7.0)

新功能

Struct arguments

你现在可以在所有后端中使用结构参数。结构可以嵌套,并且可以包含矩阵和向量。示例:

transform_type = ti.types.struct(R=ti.math.mat3, T=ti.math.vec3)
pos_type = ti.types.struct(x=ti.math.vec3, trans=transform_type)
@ti.kernel
def kernel_with_nested_struct_arg(p: pos_type) -> ti.math.vec3:
return p.trans.R @ p.x + p.trans.T
trans = transform_type(ti.math.mat3(1), [1, 1, 1])
p = pos_type(x=[1, 1, 1], trans=trans)
print(kernel_with_nested_struct_arg(p))# [4., 4., 4.]

Ndarray

  • 在 python scope 内支持 0 dim ndarray 读写
  • 修复了从 Python scope 写入 ndarray 时的一个错误

Improvements

  • 支持 autodiff 中的 rsqrt operator
  • 为 CPU 后端添加了 assembly printer
  • 支持超过 48KiB 的 CUDA shared array 分配

Performance

  • 改进了 CPU 后端的矢量化支持,显着提高了特定应用程序的性能

New Examples

  • 2D 欧拉流体模拟示例

Misc

  • Python 3.11 支持
  • ti.frexp在 CUDA、Vulkan、Metal、OpenGL 后端都得到了支持。
  • ti.math.popcntintrinsic
  • 修复了 SNodeTree destruction 过程中的内存泄漏问题
  • 为 ti.Field finalization 添加验证和改进的错误报告
  • 修复了 C-API 中 Cuda 后端的内存泄漏问题
  • 增加了对使用 str.format() 和 f-strings 的格式化打印的支持
  • 将 Python 代码格式化程序从yapf更改为black

Developer Experience

  • 用于准备构建和测试环境的 build.py 脚本

更多详情可查看发布说明


相關推薦

2023-02-06

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

2024-04-18

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

2022-08-12

Taichi(太极)v1.1.0 已经发布,这是专为高性能计算机图形学设计的编程语言。 具体更新内容如下: 新的功能 量化数据类型 高分辨率模拟可以提供出色的视觉质量,但通常受到板载 GPU 内存容量的限制。此版本添加了量化

2022-06-15

专为高性能计算机图形学设计的编程语言 Taichi(太极)已经发布 1.0.3 版本,这是一个维护版本,带来模块更新和一些 Bug 修复。主要内容如下: 模块 支持导入外部 Vulkan 缓冲区 ( #5020 ) 支持将 taichi 作为 AOT 模块的子目录 (

2022-07-19

Taichi(太极)v1.0.4 已经发布,这是专为高性能计算机图形学设计的编程语言。 具体更新内容如下: Highlights Documentation 修正错别字 (#5283) 更新 dev_install.md (#5266)  更新了 README 命令行 (#5199)  修改编

2022-11-01

Taichi(太极)v1.2.0 已经发布,这是专为高性能计算机图形学设计的编程语言。从 v1.2.0 版本开始,Taichi 遵循语义版本控制,其中从 master 分支 cutting 的常规版本会增加 MINOR 版本,而 PATCH 版本只有在挑出关键的 bug 修复时

2022-09-21

Taichi 是专为高性能计算机图形学设计的编程语言。 目前 Taichi v1.1.3 发布了,此版本带来大量改进,摘录如下: 模块 添加纹理接口到 C-API ( #5520 )  Bug修复 使用 MacOS 禁用 vkCmdWriteTimestamp ,以在 Vulkan

2022-08-19

Taichi 是专为高性能计算机图形学设计的编程语言。 目前 Taichi v1.1.2 发布了,这是 v1.1.0 的错误修复版本。 完整的变更日志: [杂项] 升级版本到 v1.1.2 [Bug] [type] 修复 codegen 中存储 quant 浮点数的错误类型 ( #5818 ) [bug]

2022-12-09

华仔 AutoJs 工具箱_Web端 V1.6.0 已经发布 此版本更新内容包括   : 一、布局分析 1、树结构支持左右滚动。 2、绘制节点显示顺序调整,按照节点深度排序,鼠标移入,优先框选深层节点。 3、增加绘制背景图开关,可隐

2022-10-15

版本控制管理工具,适用于开发人员和 DBA。 Bytebase 1.6.0 发布,更新内容如下: 新功能 支持添加只读副本作为查询数据源。 改进 优化 SQL 编辑器查询性能。 SQL 编辑器中的标题栏支持进行拖拽排序并可记忆会话状态

2023-08-11

亲爱的 JSXGraph 朋友们, 我们很高兴地宣布 JSXGraph v1.6.0 发布。 此版本中的新增功能是期待已久的新元素“vectorfield”和 “slopefield”,以及用于测量的新元素“smartlabel”。 一个很大的变化是对国际化的支持,特别是可以根据

2024-10-18

版本说明 新增特性 支持Codeup(阿里云云效)代码仓库; 支持环境的自动部署; 优化特性 管理员角色部署环境部需要审批; 优化页面展示; 升级指南 升级指南 DHorse介绍 DHorse是一个轻量级、简单易用的云应用

2023-07-27

魔豆文库MOREDOC,使用 Go 语言开发实现的文库解决方案,为dochub文库的重构版本,支持 office (全部类型)、PDF、TXT、EPUB、MOBI 等多种文档格式的在线阅读浏览,支持无限级分类、文档批量上传、文档批量转换、全文搜索、云存储

2022-06-19

Volcano社区v1.6.0版本已正式发布。此次版本增加了弹性作业管理、基于真实负载的动态调度、 基于真实负载的重调度、Volcano Job插件——MPI等多个新特性。 Volcano v1.6.0 关键特性介绍 1.弹性作业调度 v1.6.0版本新增了弹性作业