苏黎世联邦理工用 Taichi 做了啥?
时间:2022-10-23 22:40:42 阅读:95
前一阵得知了ETH Zurich(有“欧陆第一名校”美誉的苏黎世联邦理工)的Computer Graphics Laboratory(CGL)¹去年秋天在教学中使用了Taichi进行计算机图形学的教学²(内容是Physically-based Simulation,也就是基于物理的动画)。
得知消息以后挺开心的,因为之前从来没有和这个学校的老师联系过,整个过程我们也没有介入,算是课程结束以后才知道的意外惊喜:-)
苏黎世联邦理工-曾经有一次去欧洲开学术会议的机会摆在我面前,我怕办签证麻烦没去,没想到几年过去再想去,却不知道什么时候才能去了...
作为项目的原作者,自然迫不及待地对课上的学生、以及助教(TA)通过Zoom进行了访谈。收获很多信息,对Taichi未来的发展有很强的指导意义,因此共享出来,和各位开发者一起探讨探讨。(当然也顺便展示一下同学们用Taichi创造出了哪些新奇的玩意儿LOL)
同学们用Taichi实现的几个有意思的simulator,下面会提到
值得一提的是,课程教学人员不但用Taichi布置了日常作业,还布置了final project。Final project可以使用任何工具和编程语言,不过90%的同学选择了Taichi。
课程进行时,大家使用的Taichi是v0.8.7。三四个月过去,Taichi快速迭代了近10个版本,如今已经发布了v1.0.0³,有些提到的问题已经得到了解决。以下内容来自对同学和助教的访谈结果。
助教和同学们的目标
其实也挺简单:选择一个并行编程语言并用其实现一个基于物理的动画项目,最好是实时的。
可选的语言:C++CUDA Python(配上Numpy PyTorch etc.)等等。
挑战
大家选择框架的时候会重点考虑下面几个问题:
物理仿真计算量都挺大,需要并行计算。但是并行编程的门槛还是蛮高的。课上的学生很少掌握GPU编程(比如CUDA),用C++的话也有较高的门槛。OpenMP之类的工具也有一些可移植性、性能(和GPU比起来)的问题。
语言/框架需要自带一些周边组件,比如说3D可视化,这样才能比较容易地显示、查看结果。因为课程主要内容是物理仿真而不是可视化,大家都不希望自己写一套OpenGL之类的框架来进行可视化。
学生3人组成一组合作,因此必须考虑到语言的可移植性。用CUDA之类的工具可能有额外的问题:合作伙伴用的是Mac或者AMD的GPU,导致自己写的程序到了别的组员那里无法运行,弄不好友谊的小船就这么翻了。C++对于特殊硬件的需求小很多,但是也面临着跨平台编译的种种麻烦。
为什么学生们选择使用Taichi?
聊下来我们发现助教和同学比较喜欢Taichi如下几个features:
Taichi与Python无缝链接,语法相近,而几乎所有同学都掌握Python。这意味着Taichi更容易学习,更加直观。同时,Taichi拥有与CUDA相当的性能。
Taichi的GGUI系统使得3D渲染非常轻松。
Taichi非常可移植,如果你的程序编写以后可以比较容易地在NVIDIA/AMD/Intel的GPU、CPU上运行,就不用担心队友跑不起来,伤害感情...
taichi有一个活跃的社区,并且用户提供了很多示例代码,便于学习。taichi https://taichi-lang.cn/
得知消息以后挺开心的,因为之前从来没有和这个学校的老师联系过,整个过程我们也没有介入,算是课程结束以后才知道的意外惊喜:-)
苏黎世联邦理工-曾经有一次去欧洲开学术会议的机会摆在我面前,我怕办签证麻烦没去,没想到几年过去再想去,却不知道什么时候才能去了...
作为项目的原作者,自然迫不及待地对课上的学生、以及助教(TA)通过Zoom进行了访谈。收获很多信息,对Taichi未来的发展有很强的指导意义,因此共享出来,和各位开发者一起探讨探讨。(当然也顺便展示一下同学们用Taichi创造出了哪些新奇的玩意儿LOL)
同学们用Taichi实现的几个有意思的simulator,下面会提到
值得一提的是,课程教学人员不但用Taichi布置了日常作业,还布置了final project。Final project可以使用任何工具和编程语言,不过90%的同学选择了Taichi。
课程进行时,大家使用的Taichi是v0.8.7。三四个月过去,Taichi快速迭代了近10个版本,如今已经发布了v1.0.0³,有些提到的问题已经得到了解决。以下内容来自对同学和助教的访谈结果。
助教和同学们的目标
其实也挺简单:选择一个并行编程语言并用其实现一个基于物理的动画项目,最好是实时的。
可选的语言:C++CUDA Python(配上Numpy PyTorch etc.)等等。
挑战
大家选择框架的时候会重点考虑下面几个问题:
物理仿真计算量都挺大,需要并行计算。但是并行编程的门槛还是蛮高的。课上的学生很少掌握GPU编程(比如CUDA),用C++的话也有较高的门槛。OpenMP之类的工具也有一些可移植性、性能(和GPU比起来)的问题。
语言/框架需要自带一些周边组件,比如说3D可视化,这样才能比较容易地显示、查看结果。因为课程主要内容是物理仿真而不是可视化,大家都不希望自己写一套OpenGL之类的框架来进行可视化。
学生3人组成一组合作,因此必须考虑到语言的可移植性。用CUDA之类的工具可能有额外的问题:合作伙伴用的是Mac或者AMD的GPU,导致自己写的程序到了别的组员那里无法运行,弄不好友谊的小船就这么翻了。C++对于特殊硬件的需求小很多,但是也面临着跨平台编译的种种麻烦。
为什么学生们选择使用Taichi?
聊下来我们发现助教和同学比较喜欢Taichi如下几个features:
Taichi与Python无缝链接,语法相近,而几乎所有同学都掌握Python。这意味着Taichi更容易学习,更加直观。同时,Taichi拥有与CUDA相当的性能。
Taichi的GGUI系统使得3D渲染非常轻松。
Taichi非常可移植,如果你的程序编写以后可以比较容易地在NVIDIA/AMD/Intel的GPU、CPU上运行,就不用担心队友跑不起来,伤害感情...
taichi有一个活跃的社区,并且用户提供了很多示例代码,便于学习。taichi https://taichi-lang.cn/
郑重声明:文章内容来自互联网,纯属作者个人观点,仅供参考,并不代表本站立场 ,版权归原作者所有!
上一篇:多材料耦合俄罗斯方块?胡渊鸣给「太极图形课」交作业了!
下一篇:Taichi 的开源与创业故事
相关推荐