Taichi: v0.6.0 Roadmap

Created on 2 Mar 2020  路  7Comments  路  Source: taichi-dev/taichi

Finally, the unified memory dependency is removed. The whole codebase is also reorganized for this goal and code clarity/maintainability. Now we are able to

  • Support CUDA on Windows (tested, released in v0.5.5) and NVIDIA Jetson (tested, TX2), and maybe pre-Pascal NVIDIA GPUs
  • Add the AMDGPU backend (@masahi)

There are quite a few important issues during our (especially @archibate @k-ye) development, which I believe we should address with the v0.6.0 release:

  • [x] Ready-to-use OpenGL Compute Shader backend (lead: @archibate) #492
  • [x] Enforce code format #592
  • [x] Reduce compilation time & test time. Now for some reason running the 270 test cases takes > 20 minutes when tested with a single thread, and a minimal Taichi program sometimes takes > 10s to run... #560
  • [x] Access out-of-bound checking on CPU backends #561 (lead: @xumingkuan)
  • [x] Support arch=ti.arm64 (lead: @yuanming-hu) #556
  • [x] Further refactoring for code modularity and maintainability #562 (lead: @yuanming-hu and please volunteer if you'd like to participate)
  • [x] Use run-time shared object loading to merge taichi-nightly and taichi-nightly-cuda*
  • [x] Use taichi instead of taichi-nightly as package name
  • [x] Add gifs of mpm128, pbf2d (if CUDA crash fixed), sdf_renderer on README (#740)

All 7 comments

Maybe already mentioned somewhere -- I think Program can also be refactored to have an impl for each backend.

Maybe already mentioned somewhere -- I think Program can also be refactored to have an impl for each backend.

Currently we use FunctionType CodeGenXXX::compile(Program &program, Kernel &kernel).
Now we want to use CompiledProgramXXX CodeGenXXX::compile(Program &program, Kernel &kernel)
where CompiledProgramXXX is a extended class of CompiledProgram, which contains FunctionType launch as member, and also some other properties used by XXX platform runtime.

Maybe already mentioned somewhere -- I think Program can also be refactored to have an impl for each backend.

Currently we use FunctionType CodeGenXXX::compile(Program &program, Kernel &kernel).
Now we want to use CompiledProgramXXX CodeGenXXX::compile(Program &program, Kernel &kernel)
where CompiledProgramXXX is a extended class of CompiledProgram, which contains FunctionType launch as member, and also some other properties used by XXX platform runtime.

Makes sense! Maybe launch can be a member of RuntimeEnvironment. Let's move the discussions here: https://github.com/taichi-dev/taichi/issues/562

Maybe already mentioned somewhere -- I think Program can also be refactored to have an impl for each backend.

Sounds like MetalRuntime being intergrated into class MetalProgram : public Program?

Could you mark #492 as checked? I think it's already solved after #819 is merged, or wasn't it?

Could you mark #492 as checked? I think it's already solved after #819 is merged, or wasn't it?

Please read https://github.com/taichi-dev/taichi/pull/843#issuecomment-617544821

Finally, we can close this now :-) Congrats to @archibate for shipping to the world his great work on the OpenGL backend!

(v0.7.0 road map: #677)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

GeoffreyPlitt picture GeoffreyPlitt  路  4Comments

archibate picture archibate  路  4Comments

kazimuth picture kazimuth  路  4Comments

liaopeiyuan picture liaopeiyuan  路  3Comments

yuanming-hu picture yuanming-hu  路  3Comments