
Taichi: A Language for High-Performance Computation on Spatially Sparse Data [pdf] - matt_d
http://taichi.graphics/wp-content/uploads/2019/09/taichi_lang.pdf
======
joe_the_user
Looks like cool stuff.

Am I right this language compiles to GPU code?

I'm thinking of a similar project myself and I'm curious what consideration
besides loop vectorization goes into such stuff, especially, what about caches
and access issues (OK, I ask the same question for any project like this)?

Also, isn't one factor in sparse representations that if you aren't careful,
the data becomes un-sparse and slows down a lot?

~~~
sanxiyn
It compiles to both CPU and GPU. GPU is faster and headline numbers are for
GPU.

------
nuntius
Very cool. Seems to be another tool in the same vein as halide-lang.org, now
extended for sparse data.

------
pancho111203
Cool stuff, but I would have found it more useful as a python library, to
allow integration with existing tools like Pytorch.

~~~
dagw
_I would have found it more useful as a python library_

Today is you lucky day! Taichi is also a C++ library with first class python
bindings: [https://github.com/yuanming-hu/taichi](https://github.com/yuanming-
hu/taichi)

~~~
pancho111203
That's awesome, I'll give it a try. Do the python bindings include the Sparse
Data functionality? I can't find it in the docs.

------
wangii
Neat!

however, as a C guy, I really don't want to give up the control of my data
structures.

~~~
jrk
A key idea of this language is that you _don't_ give up control over your data
structures. You program your algorithm against abstract data structures, as in
most high-performance DSLs, but then you _explicitly control_ the
implementation of those abstract data structures as physical hierarchical
structures. (You can get a taste for this in the `layout` block in Fig. 1.)

~~~
mratsim
So you're working on both Halide and Taichi?

