Taichi v1.1.0 发布:更小的内存占用更快的启动速度

您好,欢迎访问我们的网站,我们将竭诚为您服务!

Taichi v1.1.0 发布:更小的内存占用更快的启动速度

时间:2022-10-09 22:18:26 阅读:92
2022年8月11日,Taichi v1.1.0发布。该版本的新功能包括:可节省1~8倍内存的量化数据类型、离线缓存加速、前向模式自动微分、SharedArray(试验)及纹理的支持(试验)。改进了GGUI、Python前端用户的使用体验等。

  新功能

  量化数据类型

  高分辨率仿真具有极佳的视觉效果,但往往受限于GPU显存的容量。v1.1.0版本新增量化数据类型,允许用户自定义任意低精度整数(ti.types.quant.int)、定点数(ti.types.quant.fixed)或浮点数(ti.types.quant.float),在硬件限制和仿真效果之间取得平衡。借助量化数据类型,理论上能节约最高8倍显存。为了有效地使用量化数据类型,Taichi还引入了新API ti.BitpackedFields与SNode quant_array,详情可在文末跳转文档了解量化数据类型的使用。

  离线缓存

  v1.1.0增加了离线缓存功能,可以将编译产物存储到磁盘上,当程序二次启动时,会自动加载该缓存,以大幅减少Taichi程序重复运行时启动kernel的编译开销。此功能默认开启,目前仅在CPU和CUDA后端有效。

  v1.1.0前后Taichi程序二次启动后的流程

  启用离线缓存前、后在CUDA后端运行cornell_box时的启动时间

  前向模式自动微分

  当一个函数的输出数量大于输入数量时,前向自动微分的效率比反向微分要高很多。v1.1.0添加了前向自动微分功能ti.ad.FwdMode,用户可以通过Taichi examples中的jacobian.py来了解前向模式和反向模式下的Jacobi矩阵的计算样例。

  SharedArray(试验性功能)

  共享内存(Shared memory)是GPU上每个线程块共享的一块访问性能较高的小内存,并广泛应用于对性能要求很高的场景中。v1.1.0通过在ti.simt.block下新增SharedArray API支持访问GPU共享内存,目前该功能适用于CUDA和Vulkan后端。从下图可见,基于SharedArray编写的Taichi N-body与同等的CUDA代码性能基本持平,甚至超过了后者。

  纹理(试验性功能)

  taichi v1.1.0支持了Vulkan和OpenGL后端上的纹理采样和提取。ti.Texture利用了硬件上的纹理支持,避免了在图像处理任务中手动编写双线性插值代码。该功能同时为栅格化或光线追踪等任务中的纹理映射提供了一个简单的方法。在Vulkan后端,Taichi还支持图像加载和存储。用户可以直接操作图像的纹理元素,并在随后的纹理映射中使用这个图像。运行ti example simple_texture,即可查看使用纹理的示例。taichi https://taichi-lang.cn/
郑重声明:文章内容来自互联网,纯属作者个人观点,仅供参考,并不代表本站立场 ,版权归原作者所有!

上一篇:用 Taichi AOT 方案将特效部署到移动端

下一篇:反无人机设备的正确应用及枪式反无人机设备的应用

相关推荐

返回顶部