Highlights:
- Documentation
- Language and syntax
- Refine SNode with quant 7/n: Support placing QuantFixedType under quant_array (#5386) (by Yi Xu)
- Add determinant for 1d case (#5375) (by Zhao Liang)
- Make floor, ceil and round accept a dtype optional argument (#5307) (by Zhao Liang)
- Rename struct_class to dataclass (#5365) (by Zhao Liang)
- Improve ti example so that users can choose which example to run by entering numbers. (#5265) (by Zhao Liang)
- Refine SNode with quant 5/n: Rename bit_array to quant_array (#5344) (by Yi Xu)
- Make bit_vectorize a parameter of ti.loop_config (#5334) (by Yi Xu)
- Refine SNode with quant 3/n: Turn bit_vectorize into an on/off switch (#5331) (by Yi Xu)
- Add errror message for missing init call (#5280) (by Zhao Liang)
- Fix fractal gui close warning (#5281) (by Zhao Liang)
- Refine SNode with quant 2/n: Enable struct for on bit_array with bit_vectorize off (#5253) (by Yi Xu)
- Refactor indexing expressions in AST & enforce integer indices (#5138) (by daylily)
Full changelog:
- Revert "[llvm] (Decomp of #5251 11/n) Enable parallel compilation on CPU backend (#5394)" (by Proton)
- [refactor] Default dtype of ndarray type should be None instead of f32 (#5391) (by Ailing)
- [llvm] (Decomp of #5251 11/n) Enable parallel compilation on CPU backend (#5394) (by Lin Jiang)
- [gui] [vulkan] Surpport for python users to control the start index and count number of particles & meshes data. (#5388) (by Mocki)
- [autodiff] Support binary operators for forward mode (#5389) (by Mingrui Zhang)
- [llvm] (Decomp of #5251 10/n) Make SNode tree compatible with parallel compilation (#5390) (by Lin Jiang)
- [llvm] [refactor] (Decomp of #5251 9/n) Refactor CodeGen to support parallel compilation on LLVM backend (#5387) (by Lin Jiang)
- [Lang] [type] Refine SNode with quant 7/n: Support placing QuantFixedType under quant_array (#5386) (by Yi Xu)
- [llvm] [refactor] (Decomp of #5251 8/n) Refactor KernelCacheData (#5383) (by Lin Jiang)
- [cuda] [type] Refine SNode with quant 6/n: Support __ldg for loading QuantFixedType and QuantFloatType (#5374) (by Yi Xu)
- [doc] Add simt functions in operators (#5333) (by Bo Qiao)
- [Lang] Add determinant for 1d case (#5375) (by Zhao Liang)
- [lang] Texture image load store support (#5317) (by Bob Cao)
- [bug] Cast scalar to right type before converting to uint64 (by Ailing Zhang)
- [refactor] Check dtype mismatch in cgraph compilation and runtime (by Ailing Zhang)
- [refactor] Check field_dim mismatch in cgraph compilation and runtime (by Ailing Zhang)
- [test] Check repeated arg names in cgraph (by Ailing Zhang)
- [llvm] [refactor] (Decomp of #5251 6/n) Let ModuleToFunctionConverter support multiple modules (#5372) (by Lin Jiang)
- [Lang] Make floor, ceil and round accept a dtype optional argument (#5307) (by Zhao Liang)
- [refactor] Rename the confused needs_grad (#5359) (by Mingrui Zhang)
- [autodiff] Support unary ops for forward mode (#5366) (by Mingrui Zhang)
- [llvm] (Decomp of #5251 7/n) Change the way to record the time of offline cache (#5373) (by Lin Jiang)
- [llvm] (Decomp of #5251 5/n) Add the parallel compilation worker to LlvmProgramImpl (#5364) (by Lin Jiang)
- [gui] [test] Fix bug in test_ggui.py when some pc env do not surrport ggui (#5370) (by Mocki)
- [Lang] Rename struct_class to dataclass (#5365) (by Zhao Liang)
- [llvm] Drop code for llvm 15. (#5313) (by Xiang Li)
- [llvm] [aot] Rewrite LLVM AOT tests with LlvmRuntimeExecutor (#5358) (by Zhanlue Yang)
- [example] Avoid f64 type in simulation/initial_value_problem.py (#5355) (by Proton)
- [ci] testing: add retention-days for broken wheels (#5326) (by Proton)
- [test] (Decomp of #5251 4/n) Delete tests for AsyncTaichi (#5357) (by Lin Jiang)
- [llvm] [refactor] (Decomp of #5251 2/n) Make modulegen a virtual function and let LLVMCompiledData replace ModuleGenValue (#5353) (by Lin Jiang)
- [gui] Support exporting gif && video in GGUI (#5354) (by Mocki)
- [autodiff] Handle field accessing by zero for forward mode (#5339) (by Mingrui Zhang)
- [llvm] [refactor] (Decomp of #5251 3/n) Remove codegen from OffloadedTask and let it replace OffloadedTaskCacheData (#5356) (by Lin Jiang)
- [refactor] Turn off stack traceback info by default (#5347) (by Ailing)
- [refactor] (Decomp of #5251 1/n) Move ParallelExecutor out of async engine (#5351) (by Lin Jiang)
- [Lang] Improve ti example so that users can choose which example to run by entering numbers. (#5265) (by Zhao Liang)
- [gui] Add get_view_matrix() and get_projection_matrix() APIs for camera (#5345) (by Mocki)
- [bug] Added warning messages for implicit type conversion for RangeFor boundaries (#5322) (by Zhanlue Yang)
- [example] Fix simulation/waterwave.py:update race condition (#5346) (by Proton)
- [Lang] [type] Refine SNode with quant 5/n: Rename bit_array to quant_array (#5344) (by Yi Xu)
- [llvm] [aot] Added CGraph tests for LLVM backend (#5305) (by Zhanlue Yang)
- [autodiff] [test] Add for-loop tests for forward mode (#5336) (by Mingrui Zhang)
- [example] Lower example GUI resolution to fit buildbot display (#5337) (by Proton)
- [build] [bug] Fix building on macOS 10.14 failed (#5332) (by PGZXB)
- [llvm] [aot] Replaced LlvmProgramImpl with LlvmRuntimeExecutor for LlvmAotModuleLoader (#5330) (by Zhanlue Yang)
- [AOT] Fixed certain crashes in C-API (#5335) (by PENGUINLIONG)
- [Lang] [type] Make bit_vectorize a parameter of ti.loop_config (#5334) (by Yi Xu)
- [autodiff] Skip store forwarding to keep the GlobalLoadStmt alive (#5315) (by Mingrui Zhang)
- [llvm] [aot] RModified ModuleToFunctionConverter to use LlvmRuntimeExecutor instead of LlvmProgramImpl (#5328) (by Zhanlue Yang)
- [llvm] Changed LlvmProgramImpl to save cache_data_ with unique_ptr instead of raw object (#5329) (by Zhanlue Yang)
- [Lang] [type] Refine SNode with quant 3/n: Turn bit_vectorize into an on/off switch (#5331) (by Yi Xu)
- [misc] Fix a few compilation warnings (#5325) (by yekuang)
- [bug] Accept numpy integers in ndrange (#5245) (#5323) (by Proton)
- [misc] Implement cache file cleaning (#5310) (by PGZXB)
- Fixed C-AP build on Android (#5321) (by PENGUINLIONG)
- [AOT] Save AOT module artifacts as zip archive (#5316) (by PENGUINLIONG)
- [llvm] [aot] Added LLVM backend support for Compute Graph (#5294) (by Zhanlue Yang)
- [AOT] Unity native plugin interfaces (#5273) (by PENGUINLIONG)
- [autodiff] Check not placed field.grad when needs_grad = True (#5295) (by Mingrui Zhang)
- [autodiff] Fix alloca block and add control flow test case for forward mode (#5301) (by Mingrui Zhang)
- [refactor] Synchronize should always be called in non-async mode (#5302) (by Ailing)
- [Lang] Add errror message for missing init call (#5280) (by Zhao Liang)
- Update prtags.json (#5304) (by Bob Cao)
- [refactor] Get rid ndarray host accessor kernels (by Ailing Zhang)
- [refactor] Use device api for CPU/CUDA ndarray (by Ailing Zhang)
- [refactor] Switch to using staging buffer for metal/vulkan/opengl (by Ailing Zhang)
- [llvm] Use LlvmProgramImpl::cache_data_ to store compiled kernel info (#5290) (by Zhanlue Yang)
- [opengl] Texture support in OpenGL (#5296) (by Bob Cao)
- [build] [refactor] Cleanup backends folder and rename to RHI (#5288) (by Bo Qiao)
- [Lang] Fix fractal gui close warning (#5281) (by Zhao Liang)
- [autodiff] [test] Add atomic test for forward autodiff (#5286) (by Mingrui Zhang)
- [dx11] Fix DX backend with new runtime & Better D3D11 buffer handling (#5244) (by Bob Cao)
- [autodiff] Set default seed only for scalar parameter to avoid silent unexpected results (#5287) (by Mingrui Zhang)
- test (#5292) (by Ailing)
- [AOT] Added C-API for on-device memory copy (#5271) (by PENGUINLIONG)
- [Doc] Fix typos (#5283) (by Kian-Meng Ang)
- [autodiff] Support control flow for forward mode (by mingrui)
- [autodiff] Support for-loop and mutation for forward mode (by mingrui)
- [autodiff] Refactor dual field allocation (by mingrui)
- [AOT] Refactor C-API codegen (#5272) (by PENGUINLIONG)
- Update README.md (#5279) (by Taichi contributor)
- [metal] Support memcpy_internal via buffer_copy (#5268) (by Ailing)
- [bug] Fix missing old but useful metadata in offline cache (#5267) (by PGZXB)
- [Lang] [type] Refine SNode with quant 2/n: Enable struct for on bit_array with bit_vectorize off (#5253) (by Yi Xu)
- [Doc] Update dev_install.md (#5266) (by Vissidarte-Herman)
- [build] [bug] Fix dependency for opengl_rhi target (by Bo Qiao)
- Update fallback order, move opengl behind Vulkan (#5257) (by Bob Cao)
- [opengl] Move OpenGL backend onto Gfx runtime (#5246) (by Bob Cao)
- [build] [refactor] Move LLVM source files to target locations (#5254) (by Bo Qiao)
- [bug] Fixed misuse of std::forward (#5237) (by Zhanlue Yang)
- [AOT] Added safety checks to prevent hard crashes on failure (#5249) (by PENGUINLIONG)
- [build] [refactor] Move shaders source files to runtime (#5247) (by Bo Qiao)
- [example] Fix diff_sph example with --train (#5242) (by Mingrui Zhang)
- [misc] Add filename option to ti.tools.VideoManager. (#5219) (by Qian Bao)
- [bug] Throw exceptions when ndrange gets non-integral arguments (#5245) (by Mike He)
- [build] [refactor] Move wasm and dx11 source files to target locations (#5235) (by Bo Qiao)
- [type] [bug] Refine SNode with quant 1/n: Fix (atomic_)set_mask_b##N (#5238) (by Yi Xu)
- [lang] 1d/3d texture support (#5233) (by Bob Cao)
- [vulkan] Fix OpBranch for reversed RangeForStmt (#5241) (by Mingrui Zhang)
- [build] Fix -Werror errors for TI_WITH_CUDA_TOOLKIT=ON (#5133) (#5216) (by Proton)
- [ci] Enable pylint on examples (#5222) (by Proton)
- [llvm] [aot] Split LlvmRuntimeExecutor from LlvmProgramImpl (#5207) (by Zhanlue Yang)
- [type] [refactor] Decouple quant from SNode 3/n: Extend bit pointers (#5232) (by Yi Xu)
- [vulkan] Codegen & runtime improvements (#5213) (by Bob Cao)
- [gui] Fix the device memory leak when GGUI terminates (by Ailing Zhang)
- [gui] Let gui and renderer manage the resource they own (by Ailing Zhang)
- [AOT] Unity language binding generator (#5204) (by PENGUINLIONG)
- [type] [refactor] Decouple quant from SNode 2/n: Remove physical_type from QuantIntType (#5223) (by Yi Xu)
- [type] [refactor] Decouple quant from SNode 1/n: Add BitStructTypeBuilder (#5209) (by Yi Xu)
- [build] [refactor] Move metal source files to target locations (#5208) (by Bo Qiao)
- [lang] Export a few types from the share library (#5220) (by yekuang)
- [llvm] [refactor] LLVMProgramImpl code clean up: part-5 (#5197) (by Zhanlue Yang)
- [spirv] Fixed
OpLoad
with physical address (#5212) (by PENGUINLIONG) - [wip] Enable full wheel build when TI_EXPORT_CORE is on (#5211) (by Ailing)
- [llvm] [refactor] LLVMProgramImpl code clean up: part-4 (#5189) (by Zhanlue Yang)
- Move spdlog include to profiler.cpp (#5210) (by Ailing)
- Fix ti gallery command bug (#5196) (by Zhao Liang)
- [misc] Improve TI_STATIC_ASSERT compatibility (#5205) (by Yuanming Hu)
- [llvm] [refactor] LLVMProgramImpl code clean up: part-3 (#5188) (by Zhanlue Yang)
- Fixed C-API provision (#5203) (by PENGUINLIONG)
- [lang] Improve error message when literal val is out of range of default dtype (#5191) (by Ailing)
- [Lang] [ir] Refactor indexing expressions in AST & enforce integer indices (#5138) (by daylily)
- Remove stale coverage from README.md (#5202) (by yekuang)
- [ci] Slim cpu build image (#5198) (by Proton)
- [build] [refactor] Move opengl source files to target locations (#5200) (by Bo Qiao)
- [example] Fix dtype for metal backend and enforce vulkan (#5201) (by Mingrui Zhang)
- [Doc] Updated README command lines (#5199) (by Vissidarte-Herman)
- [llvm] [refactor] LLVMProgramImpl code clean up: part-2 (#5187) (by Zhanlue Yang)
- [AOT] Support Matrix/Vector as graph arguments (#5165) (by Haidong Lan)
- [refactor] Enable adaptive block_dim selection for CPU backend (#5190) (by Bo Qiao)
- [Doc] Modify compilation warnings (#5180) (by Olinaaaloompa)
- [ci] Save wheel to artifact when test fails (#5186) (by Proton)
- [gui] Detailed error message when GGUI is not available (#5164) (by Proton)
- [ci] Run C++ tests on Windows (#5176) (by Proton)
- [lang] Texture support 3/n (Python changes) (#5174) (by Bob Cao)
- [llvm] [refactor] LLVMProgramImpl code clean up: part-1 (#5181) (by Zhanlue Yang)
- [AOT] Implementation of Taichi Runtime C-API (#5168) (by PENGUINLIONG)
- [refactor] [autodiff] Clean redundant compiled functions and refactor kernel key (#5178) (by Mingrui Zhang)
- [doc] Add badge on README.md (#5177) (by yanqingzhang)
- [lang] Texture support 2/n (SPIR-V backend & runtime changes) (#5159) (by Bob Cao)
- [build] Export cmake config to ease clients usage in Cmake (#5162) (by Bo Qiao)
- [refactor] [autodiff] Refactor autodiff api and add corresponding tests (#5175) (by Mingrui Zhang)
- [aot] [llvm] LLVM AOT Field part-4: Added AOT tests for Fields - CUDA backend (#5124) (by Zhanlue Yang)
- [type] [refactor] Consistently use quant_xxx in quant-related names (#5166) (by Yi Xu)
- [cuda] Disable reduction in non-full warps (#5161) (by Bob Cao)
- [autodiff] Support basic operations for forward mode autodiff (by mingrui)
- [autodiff] Add a context manager for forward mode autodiff (by mingrui)
- [AOT] C-APIs for Taichi runtime distribution (#5150) (by PENGUINLIONG)
- [cli] Improve user interface for CLI command ti example (#5153) (by Zhao Liang)
- [Doc] Updated odop.md, removing obsolete information (#5163) (by Vissidarte-Herman)
- [autodiff] [refactor] Refactor autodiff tape api and TapeImpl (#5154) (by Mingrui Zhang)
- [type] [refactor] Separate CustomFixedType from CustomFloatType (#5149) (by Yi Xu)
- [ui] Properlly fix UTF-8 title string by converting to UTF16 (#5155) (by Bob Cao)
- [aot] [llvm] LLVM AOT Field #3: Added AOT tests for Fields - CPU backend (#5121) (by Zhanlue Yang)
- Bump version to v1.0.4 (#5157) (by Taichi Gardener)
- [lang] Texture support 1/n (Context & Programs) (#5139) (by Bob Cao)