|
发表于 2023-6-11 22:51:35
|
显示全部楼层
|阅读模式
来自 中国–浙江–温州–平阳县
Taichi起步于MIT的计算机科学与人工智能实验室(CSAIL),设计初衷是便利计算机图形学研究人员的日常工作,帮助他们快速实现适用于GPU的视觉计算和物理模拟算法。Taichi选择了一条创新的路径:嵌入于Python,使用即时编译(JIT)架构(如LLVM、SPIR-V),将Python源代码转化为GPU或CPU的原生指令,在开发时和运行时均提供优越性能。
当然,以Python为前端的领域特定语言(DSL)不是什么新奇的创造。过去几年里,Halide、PyTorch、TVM等框架发展成熟,实际已塑造了图像处理、深度学习等领域的标准。Taichi与这些框架的最大区别在于其指令式编程范式。作为一种领域特定语言,Taichi并不专长于特定的某种计算模式。这意味着更大的灵活度。也许有人会假定灵活性需要牺牲优化程度,但对Taichi而言并非如此,主要有以下几个原因:
Taichi的工作负荷呈现出不可利用的特点(如不支持逐元素运算),也就是说算法强度是固定不变的。只要切换到GPU后端,用户就可以收获明显的性能提升。
传统深度学习框架使用的运算符都是简单的数学表达式,需要在计算图层面融合运算符,以实现更高的算法强度。但Taichi的指令式编程让用户能在一个kernel中轻松完成大量计算。我们将这样的kernel命名为mega-kernel。
taichi使用各种编译器技术大幅优化源代码,包括公共子表达式消除、死码删除、控制流图分析。这些优化手段适用于各个后端,因为Taichi有自己的中间表示(IR)层。taichi https://taichi-lang.cn/
|
|