计算机图形学编程语言 Taichi(太极)v1.2.0 发布
Taichi(太极)v1.2.0 已经发布,这是专为高性能计算机图形学设计的编程语言。从 v1.2.0 版本开始,Taichi 遵循语义版本控制,其中从 master 分支 cutting 的常规版本会增加 MINOR 版本,而 PATCH 版本只有在挑出关键的 bug 修复时才会增加。
具体更新内容如下:
弃用通知
- 在未来的版本中将不允许使用单个循环索引对多维的
ti.ndrange()
进行索引。
新的功能
离线缓存
v1.1.0 中引入了 CPU 和 CUDA 后端的离线缓存。在新版本中,Vulkan、OpenGL 和 Metal 后端也支持此功能。
- 如果你的代码行为异常,官方建议通过在 ti.init() 方法调用中设置环境变量 TI_OFFLINE_CACHE=0 或 offline_cache=False 来禁用离线缓存,并在 Taichi 的 GitHub repo 上向提交一个 issue。
- 有关详细信息,可参阅 Offline cache。
GDAR (Global Data Access Rule)
提供了一个 checker,用于检测可能违反全局数据访问规则的情况。
- 该 checker 仅在调试模式下工作。要启用它,可在调用
ti.init()
时设置debug=True
。 - 在使用时
ti.ad.Tape()
设置validation=True
,以验证ti.ad.Tape()
所捕获的内核
如果发生违规,检查器会查明违反规则的代码行。
例如:
import taichi as ti ti.init(debug=True) N = 5 x = ti.field(dtype=ti.f32, shape=N, needs_grad=True) loss = ti.field(dtype=ti.f32, shape=(), needs_grad=True) b = ti.field(dtype=ti.f32, shape=(), needs_grad=True) @ti.kernel def func_1(): for i in range(N): loss[None] += x[i] * b[None] @ti.kernel def func_2(): b[None] += 100 b[None] = 10 with ti.ad.Tape(loss, validation=True): func_1() func_2() """ taichi.lang.exception.TaichiAssertionError: (kernel=func_2_c78_0) Breaks the global data access rule. Snode S10 is overwritten unexpectedly. File "across_kernel.py", line 16, in func_2: b[None] += 100 ^^^^^^^^^^^^^^ """
改进
Performance
- 改进 Vulkan performance with loops (#6072)
Python Frontend
添加了 PrefixSumExecutor 以 prefix-sum operations 的性能。传统的 prefix-sum function 在每次函数调用时都会分配辅助 gpu 缓冲区,这会导致明显的性能问题。新的 PrefixSumExecutor 能够避免一次又一次地分配缓冲区。对于长度相同的数组,PrefixSumExecutor 只需要初始化一次,就可以执行任意次数的prefix-sum operations,而无需多余的字段分配。目前仅 CUDA 后端支持 prefix-sum operation。(#6132)
用法:
N = 100 arr0 = ti.field(dtype, N) arr1 = ti.field(dtype, N) arr2 = ti.field(dtype, N) arr3 = ti.field(dtype, N) arr4 = ti.field(dtype, N) # initialize arr0, arr1, arr2, arr3, arr4, ... # ... # Performing an inclusive in-place's parallel prefix sum, # only one executor is needed for a specified sorting length. executor = ti.algorithms.PrefixSumExecutor(N) executor.run(arr0) executor.run(arr1) executor.run(arr2) executor.run(arr3) executor.run(arr4)
当调试模式打开时,现在可以对 Vulkan、CPU 和 CUDA 后端上的加法、减法、乘法和左移运算符进行运行时整数溢出检测。Vulkan 后端使用溢出检测需要弃用 printing,Vulkan 后端 64 位乘法溢出检测需要 NVIDIA driver 510 以上。(#6178) (#6279)
For the following program:
import taichi as ti ti.init(debug=True) @ti.kernel def add(a: ti.u64, b: ti.u64)->ti.u64: return a + b add(2 ** 63, 2 ** 63) The following warning is printed at runtime: Addition overflow detected in File "/home/lin/test/overflow.py", line 7, in add: return a + b ^^^^^
Unix/Windows 平台上的 Vulkan 后端现在支持 Printing。要在 vulkan 后端启用 printing,需要按照 https://docs.taichi-lang.org/docs/master/debugging#applicable-backends 中的说明进行操作 (#6075)
GGUI
- 现在支持设置 GGUI 窗口的初始位置。参阅此链接 https://docs.taichi-lang.org/docs/master/ggui#create-a-window 查看详细信息和使用方法。(#6156)
更多详情可查看发布说明:https://github.com/taichi-dev/taichi/releases/tag/v1.2.0

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Dante Cloud 2.7.5.1 发布,企业级技术中台微服务架构
Dante Cloud 是一款企业级微服务架构和服务能力开发平台。首个全面拥抱 Spring Authorization Server 的版本,基于Spring Boot 2.7.5、Spring Cloud 2021.0.4、Spring Cloud Alibaba 2021.0.4.0、 Spring Authorization Server 0.3.1、Nacos 2.1.2 等最新版本开发的多租户系统,遵循SpringBoot编程思想,高度模块化和可配置化。具备服务发现、配置、熔断、限流、降级、监控、多级缓存、分布式事务、工作流等功能。 平台定位 构建成熟的、完善的、全面的,基于 OAuth2.1 的、前后端分离的微服务架构解决方案。 面向企业级应用和互联网应用设计开发,既兼顾传统项目的微服务化,又满足互联网应用开发建设、快速迭代的使用需求。 平台架构使用微服务领域及周边相关的各类新兴技术或主流技术进行建设,是帮助快速跨越架构技术选型、研究探索阶段的利器。 代码简洁规范、结构合理清晰,是新技术开发应用的典型的、综合性案例,助力开发人员对新兴技术的学习和掌握。 [1]、为什么更名...
- 下一篇
MAME 0.249 发布,重温童年的街机模拟器
经过四个星期的开发,MAME 0.249 现已发布。MAME 最初是街机模拟器,随着时间的推移,MAME 吸收了姊妹项目 MESS(多机种模拟器超级系统),所以 MAME 现在还记录了各种各样的(大多是老式的)电脑游戏、掌机游戏和电子游戏(视频游戏)。 新版本亮点包括改进的 Atari 8-bit 家庭仿真、具有两人合作模式的新版 Kyukyoku Tiger、另一个版本的 The Crystal Maze 升级为可工作,以及许多用于游戏机的原型磁带转储,包括 Atari Lynx、Nintendo Game Boy 和超级任天堂娱乐系统。还有 8 个 e-kara 磁带,包括一个罕见的 e-kara Web 磁带,其中包含 12 首面向年轻人的歌曲。 与此同时,Apple II 和 Macintosh 仿真的现代化也正在稳步推进。本月,最后一批遗留的软盘设备被淘汰;各种 ADB 仿真问题得到解决,使鼠标/键盘输入更加可靠;Apple IIe standard 80-column卡现在可以正常工作。Brian Johnson 为 Epson QX-10 添加了一些硬盘和声卡,并改进了键...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Red5直播服务器,属于Java语言的直播服务器
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7