与 CUDA 相比,Taichi 跑得快不快?

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

与 CUDA 相比,Taichi 跑得快不快?

时间:2022-10-09 22:01:27 阅读:95
在「v1.0.0」用Taichi AOT方案将特效部署到移动端中,我们展示了Taichi脱离Python环境部署的方法,实现了将特效算法快速部署在安卓手机上,并加上了重力交互功能。受制于散热、成本等问题,在部署环境中的硬件其计算能力通常很弱,因此有一个问题变得非常重要:相比于更底层的原生编程语言,Taichi能不能充分地发挥设备的计算能力?于是我们发起Taichi benchmark项目做一个更加细分、准确的性能评估。

  作为一个领域编程语言(domain-specific language),Taichi可以用很短的代码解决数值计算方面的问题。我们针对领域中常用算法建立了测试集,将每一个测试项目和性能最好的实现方法进行对比,简而言之:对比基线是外部最强实现vs Taichi实现。通过这样的对比,我们试图评估Taichi编译器中内置优化技术的有效性以及可优化的空间。同时,这种对比也可以帮助改进Taichi,以达到更好的性能。作为这个项目的开端,目前版本的性能评测主要是Taichi与CUDA,通过与高度优化的CUDA代码进行对照,以评估Taichi的优化水平。

  这次评测部分地解答了用户一直以来的疑问:Taichi和CUDA比性能究竟怎么样?我们在一块Nvidia Geforce RTX 3080上进行了测试,其中有9个算法以高性能的CUDA实现作为参考。在测试中计时方法对结果很重要,采用的两种计时方式分别是:

  外部计时:重复运行计算函数,取平均计算时间。其中第一次运行包含了Taichi的编译开销,不计入总时间。

  Kernel计时:在CUDA中使用cudaEventElapsedTime接口,在Taichi中使用ti.profiler统计kernel的运行时间(点击查看Taichi profiler文档)。二者的底层实现统一调用CUPTI,因此在度量上是一致的。

  其中,外部计时的方式仍然包含了每次调用的Python开销,更贴近实际的使用场景。Kernel计时仅包含GPU计算函数,能更准确地评估Kernel函数的质量。taichi无论采用哪种方式,在每个测试项目中我们使用相同的计时器以保证对比是公平的。taichi https://taichi-lang.cn/
郑重声明:文章内容来自互联网,纯属作者个人观点,仅供参考,并不代表本站立场 ,版权归原作者所有!

上一篇:关注荣耀X40 GT来袭,搭载骁龙888处理器

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

相关推荐

返回顶部