Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The Taichi High-Performance and Differentiable Programming Language for Sparse and Quantized Visual Computing #273

Open
gaocegege opened this issue Sep 12, 2021 · 3 comments

Comments

@gaocegege
Copy link
Member

https://yuanming.taichi.graphics/publication/2021-taichi-thesis/taichi-thesis.pdf

http://taichi.graphics/ Yuanming Hu 的 thesis

@gaocegege
Copy link
Member Author

gaocegege commented Sep 13, 2021

太极的背景和动机(Motivation)是这样的:计算机视觉的程序通常是用 cpp 和 cuda 实现的。这样的方式有很多缺点:

  • 性能调优很难,需要非常熟悉 cpp 和 cuda。在工业界里这样的工程师通常稀少且昂贵。
  • 可移植性很差,在未来 Nvidia 未必是唯一的 GPU,所以这个问题会越来越严重。
  • 生产力低下,类比互联网领域,之前用 cpp 写 backend 的时代效率很低,现代语言如 go java 都极大的提高了生产力。

不过在 CG 这个领域,太极也有一些 non-goals:

  • tasks with domain-specific hardware support, and
  • coarse-granularity tasks, where function call overheads and data transfer time are negligible, with well-optimized libraries.

文中给出了几个例子,比如 vulkan openGL 优化的非常好的渲染任务,或者 TF PyTorch 已经处理的非常好的 DL 训练等。

@gaocegege
Copy link
Member Author

屏幕快照 2021-09-13 下午5 55 55

@gaocegege
Copy link
Member Author

截屏2021-09-14 下午2 56 54

CG 这个场景下有一些领域特定的特点,比如上图。CG 的数据分布是空间上的稀疏,所以利用这个特性,能够做一些通用的编译器/库做不了的优化。

太极做了这么几个设计决策(挑着几个印象深刻的写):

  • 分离数据结构和计算。这个的意思应该是用户看到的数据结构是声明式的,声明自己的期望即可。使用起来 dense 场景和 sparse 场景的数据结构是一个样子的(反面例子见 TF Tensor/SparseTensor?)
  • Regular Grids 是基本的数据结构,暂时不太明白(
  • 自动生成后端代码,用户只需要指定是想要 cuda 还是 vulkan 还是别的,代码会自动生成

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant