Taichi尝试解决什么 问题?

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

Taichi尝试解决什么 问题?

时间:2022-11-06 22:21:32 阅读:81
虽然 Taichi 早期面向高性能计算机图形学,但是其应用场景已经很快得渗透到了各种我们没有想到的领域。很多用户已经将 Taichi 作为一套 “在 Python 中编写高性能程序的工具” 或者 “(移动端)部署 compute shader 的开发系统”。(文末有 Taichi 面向的两类用户人群的讨论。)其实这些使用方式和 Taichi 的愿景是吻合的:

并行计算程序只要轻松地编写一次以后,能够高性能地部署在几乎任何地方。
总结下来,Taichi 有如下三个核心特质:

优雅开发
语法简单:Python 用户可直接上手编写
与 Python 生态(如 Numpy、PyTorch)自然结合
自动并行和自动微分大大降低程序开发难度
仅用 99 行代码,就可以开发精彩的图形程序
高效运行
面向多核 CPU 与大规模并行 GPU 设计
将 Python 即时编译(Just-in-time, JIT)为二进制可执行代码
空间稀疏数据结构:不在空白空间浪费计算资源
量化数据类型:加速移动端计算
随处部署
Taichi 支持包含 x64, ARM CPUs, CUDA, Vulkan, Metal 和 OpenGL Compute Shaders 等后端
提前(Ahead-of-time, AOT)编译允许 Taichi 在 PC、移动设备、浏览器中脱离 Python 运行

带图片的 Taichi 项目的全家福


过去的一年中 GitHub 上的 ”import taichi as ti“ 数量增长了 4 倍:


Taichi 简史
在未来,我们希望实现 “哪里有并行计算的需求,哪里就有 Taichi”。单纯看一个增长数字或许并不能帮我们了解用户到底用 Taichi 做了什么。下面我们分各个领域简单讨论一下!

领域和场景
图像处理

嗯,论如何把眼睛无缝缝合到手心...


Poisson Image Editing [Perez03] 也算是经典论文了。Jiayi Weng (jiayiwen), Zixu Chen (zixuc) 两位同学实现了这个经典算法,支持 Taichi 作为后端。用 Taichi 作为后端有几个好处:

跨后端,写一遍以后 AMDGPU、CUDA、多线程CPU都能跑了;
Taichi 自带 JIT,不需要在用户机器上编译 CUDA、C++ 文件,很省事儿;
开发可以完全在 Python 中完成,用 @ti.kernel 标记一下需要在并行设备上运行的部分就好。
基于 taichi 开发 Python 库是很值得推广的方式,当然也存在一些需要优化的地方,如果有别的同学尝试了欢迎告诉我(和社区)你的使用体验!taichi https://taichi-lang.cn/
郑重声明:文章内容来自互联网,纯属作者个人观点,仅供参考,并不代表本站立场 ,版权归原作者所有!

上一篇:Taichi 和 PyTorch 的数据容器存在哪些差异?

下一篇:分享书法培训楷书之流美,被他写到极致(二)

相关推荐

返回顶部