初探Taichi图形编程语言

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

初探Taichi图形编程语言

时间:2022-10-16 22:41:41 阅读:95
一.连结!Python与Taichi

  “Python,你被强化了”——Taichi

  正如这门名为Taichi的语言的目标——专攻图形学,找个胶水角色比较强的平台扎根在所不辞。而Python作为胶水大火,因此Taichi着陆了。

  Python与Taichi紧密相连,甚至Taichi可以算是Python的一个扩展。弥补了Python在并行计算方面的不足(Python相比于C++/C可是众所皆知的慢)。

  在Taichi之前,我们可以先用Python组织项目一下结构,再用CUDA翻译一下完成项目。Python的开发效率相当高,以至于翻译为CUDA的过程相比起来就像是——数你祖父毛衣背心上的网眼一样令人抓狂。

  然而,哪里有需求哪里就有解决方案。

  Taichi想方设法代替掉了写CUDA这个枯燥无味令人发指的过程,使Python的图形计算在效率上产生了巨大的改观。

  二.Taichi的基础设定

  Taichi是一门强类型的语言,强类型一般意味着更高的速度,同理,弱类型意味着代码运行时需要花费更多的时间用来检查类型

  Taichi是一门专注于生产力,意味着语法更符合直觉,代码自解释能力更强,反面例子请见Brainfuck

  Taichi是注重可移植性的语言,这意味着可以在不同的机器上运行,(almost)无需在乎操作系统、GPU CPU型号的区别

  Taichi是一门即时编译(just-in-time compile)的语言,采用懒惰的政策(lazy policy)来编译,这一点相当符合Python的胃口

  Taichi适用于Python版本3.7、3.8,不吃3.9这一套

  三.Taichi的特性(features)

  一般而言,feature是体现语言的设计哲学的

  先来看一段代码(下面)

  我们可以注意到Taichi需要作为包的形式引入Python

  然后就像开技能前的吟唱一样打出一串——ti.init(arch=ti.gup),注意,这里的gup完全可以换成cpu作为初始化的参数

  注意到ti.kernel以及func就像贞节牌坊一样立在在函数的面前

  其中贞节牌坊的实现依靠的是Python的装饰器(decorator)

  这些函数都是包含有关计算的代码的打工人,为了更好的控制这些打工人,Taichi把他们分化为两个阶级

  1.func打工人小弟,

  2.kernel打工人の包工头

  taichi不同的阶级意味着不同的待遇,func必然只能被其他func小弟或者kernel包工头调用,为了更快的运行速度,func都被强制内联(inline),inline这个东西在C++算法竞赛的时候经常用到 taichi https://taichi-lang.cn/
郑重声明:文章内容来自互联网,纯属作者个人观点,仅供参考,并不代表本站立场 ,版权归原作者所有!

上一篇:老公婚后开公司,股东法人都是婆婆怎么办?

下一篇:使用 Taichi 在 A100 显卡实现五千核并行速度的计算流体程序 Taichi-LBM3D

相关推荐

返回顶部