Skip to content

v1.0.3

Compare
Choose a tag to compare
@github-actions github-actions released this 13 Jun 23:07
· 2043 commits to master since this release
fae94a2

Highlights:

  • Aot module
    • Support importing external Vulkan buffers (#5020) (by PENGUINLIONG)
    • Supported inclusion of taichi as subdirectory for AOT modules (#5007) (by PENGUINLIONG)
  • Bug fixes
    • Fix frontend type check for reading a whole bit_struct (#5027) (by Yi Xu)
    • Remove redundant AllocStmt when lowering FrontendWhileStmt (#4870) (by Zhanlue Yang)
  • Build system
    • Improve Windows build script (#4955) (by PENGUINLIONG)
    • Improved building on Windows (#4925) (by PENGUINLIONG)
    • Define Cmake OpenGL runtime target (#4887) (by Bo Qiao)
    • Use keywords instead of plain target_link_libraries CMake (#4864) (by Bo Qiao)
    • Define runtime build target (#4838) (by Bo Qiao)
    • Switch to scikit-build as the build backend (#4624) (by Frost Ming)
  • Documentation
    • Improve ODOP doc structure (#5089) (by Yi Xu)
    • Add documentation of Taichi Struct Classes. (#5075) (by bsavery)
    • Updated type system (#5054) (by Vissidarte-Herman)
    • Branding updates. Also tests netlify. (#4994) (by Vissidarte-Herman)
    • Fix netlify cache & sync doc without pr content (#5003) (by Justin)
    • Update trouble shooting URL in bug report template (#4988) (by Haidong Lan)
    • Updated URL (#4990) (by Vissidarte-Herman)
    • Fix docs deploy netlify test configuration (#4991) (by Justin)
    • Updated relative path (#4929) (by Vissidarte-Herman)
    • Updated broken links (#4912) (by Vissidarte-Herman)
    • Updated links that may break. (#4874) (by Vissidarte-Herman)
    • Add limitation about TLS optimization (#4877) (by Ailing)
  • Examples
    • Fix block_dim warning in ggui (#5128) (by Zhao Liang)
    • Update visual effects of mass_spring_3d_ggui.py (#5081) (by Zhao Liang)
    • Update mass_spring_3d_ggui.py to v2 (#3879) (by Alex Brown)
  • Language and syntax
    • Add more initialization routines for glsl matrix types (#5069) (by Zhao Liang)
    • Support constructing vector and matrix ndarray from ti.ndarray() (by ailzhang)
    • Disallow reading a whole bit_struct (#5061) (by Yi Xu)
    • Struct Classes implementation (#4989) (by bsavery)
    • Add short-circuit if-then-else operator (#5022) (by daylily)
    • Build sparse matrix from ndarray (#4841) (by pengyu)
    • Fix potential precision bug when using math vector and matrix types (#5032) (by Zhao Liang)
    • Refactor quant type definition APIs (#5036) (by Yi Xu)
    • Fix parameter name 'range' for ti.types.quant.fixed (#5006) (by Yi Xu)
    • Refactor quantized_types module and make quant APIs public (#4985) (by Yi Xu)
    • Add more functions to math module (#4939) (by Zhao Liang)
    • Support sparse matrix datatype and storage format configuration (#4673) (by pengyu)
    • Copy-free interaction between Taichi and PaddlePaddle (#4886) (by 0xzhang)
  • LLVM backend (CPU and CUDA)
    • Add AOT builder and loader (#5013) (by yekuang)
  • Metal backend
    • Support Ndarray (#4720) (by yekuang)
  • RFC
    • AOT for all SNodes (#4806) (by yekuang)
  • SIMT programming
    • Add match_all warp intrinsics (#4961) (by Zeyu Li)
    • Add match_any warp intrinsics (#4921) (by Zeyu Li)
    • Add uni_sync warp intrinsics (#4927) (by 0xzhang)
    • Add activemask warp intrinsics (#4918) (by Zeyu Li)
    • Add syncwarp warp intrinsics (#4917) (by Zeyu Li)
  • Vulkan backend
    • Fixed vulkan backend crash on AOT examples (#5047) (by PENGUINLIONG)
  • GitHub Actions/Workflows
    • Update release_test.sh (#4960) (by Chuandong Yan)

Full changelog:

  • [aot] [llvm] LLVM AOT Field #2: Updated LLVM AOTModuleLoader & AOTModuleBuilder to support Fields (#5120) (by Zhanlue Yang)
  • [type] [refactor] Misc improvements to quant codegen (#5129) (by Yi Xu)
  • [ci] Enable yapf and isort on example files (#5140) (by Ailing)
  • [Example] Fix block_dim warning in ggui (#5128) (by Zhao Liang)
  • fix mass_spring_3d_ggui backend (#5127) (by Zhao Liang)
  • [lang] Texture support 0/n: IR changes (#5134) (by Bob Cao)
  • Editorial update (#5119) (by Olinaaaloompa)
  • [aot] [llvm] LLVM AOT Field #1: Adjust serialization/deserialization logics for FieldCacheData (#5111) (by Zhanlue Yang)
  • [aot][bug] Use cached compiled kernel pointer when it's added to graph (#5122) (by Ailing)
  • [aot] [llvm] LLVM AOT Field #0: Implemented FieldCacheData & refactored initialize_llvm_runtime_snodes() (#5108) (by Zhanlue Yang)
  • [autodiff] Add forward mode pipeline for autodiff pass (#5098) (by Mingrui Zhang)
  • [build] [refactor] Move Vulkan runtime out of backends dir (#5106) (by Bo Qiao)
  • [bug] Fix build without llvm backend crash (#5113) (by Bo Qiao)
  • [type] [llvm] [refactor] Fix function names in codegen_llvm_quant (#5115) (by Yi Xu)
  • [llvm] [refactor] Replace cast_int() with LLVM native integer cast (#5110) (by Yi Xu)
  • [type] [refactor] Remove redundant promotion for custom int in type_check (#5102) (by Yi Xu)
  • [Example] Update visual effects of mass_spring_3d_ggui.py (#5081) (by Zhao Liang)
  • [test] Save mpm88 graph in python and load in C++ test. (#5104) (by Ailing)
  • [llvm] [refactor] Move load_bit_pointer() to CodeGenLLVM (#5099) (by Yi Xu)
  • [refactor] Remove ndarray element shape from extra arg buffer (#5100) (by Haidong Lan)
  • [refactor] Update Ndarray constructor used in AOT runtime. (#5095) (by Ailing)
  • clean hidden override functions (#5097) (by Mingrui Zhang)
  • [llvm] [aot] CUDA-AOT PR #2: Implemented AOTModuleLoader & AOTModuleBuilder for LLVM-CUDA backend (#5087) (by Zhanlue Yang)
  • [Doc] Improve ODOP doc structure (#5089) (by Yi Xu)
  • Use pre-calculated runtime size array for gfx runtime. (#5094) (by Haidong Lan)
  • [bug] Minor fix for ndarray element_shape in graph mode (#5093) (by Ailing)
  • [llvm] [refactor] Use LLVM native atomic ops if possible (#5091) (by Yi Xu)
  • [autodiff] Extract shared components for reverse and forward mode (#5088) (by Mingrui Zhang)
  • [llvm] [aot] Add LLVM-CPU AOT tests (#5079) (by Zhanlue Yang)
  • [Doc] Add documentation of Taichi Struct Classes. (#5075) (by bsavery)
  • [build] [refactor] Change CMake global include_directories to target based function (#5082) (by Bo Qiao)
  • [autodiff] Allocate dual and adjoint snode (#5083) (by Mingrui Zhang)
  • [refactor] Make sure Ndarray shape is field shape (#5085) (by Ailing)
  • [llvm] [refactor] Merge AtomicOpStmt codegen in CPU and CUDA backends (#5086) (by Yi Xu)
  • [llvm] [aot] CUDA-AOT PR #1: Extracted common logics from CPUAotModuleImpl into LLVMAotModule (#5072) (by Zhanlue Yang)
  • [infra] Refactor Vulkan runtime into true Common Runtime (#5058) (by Bob Cao)
  • [refactor] Correctly set ndarray element_size and nelement (#5080) (by Ailing)
  • [cuda] [simt] Add assertions for warp intrinsics on old GPUs (#5077) (by Bo Qiao)
  • [Lang] Add more initialization routines for glsl matrix types (#5069) (by Zhao Liang)
  • [spirv] Specialize element shape for spirv codegen. (#5068) (by Haidong Lan)
  • [llvm] Specialize element shape for LLVM backend (#5071) (by Haidong Lan)
  • [doc] Fix broken link for github action status badge (#5076) (by Ailing)
  • [Example] Update mass_spring_3d_ggui.py to v2 (#3879) (by Alex Brown)
  • [refactor] Resolve comments from #5065 (#5074) (by Ailing)
  • [Lang] Support constructing vector and matrix ndarray from ti.ndarray() (by ailzhang)
  • [refactor] Pass element_shape and layout to C++ Ndarray (by ailzhang)
  • [refactor] Specialized Ndarray Type is (element_type, shape, layout) (by ailzhang)
  • [aot] [CUDA-AOT PR #0] Refactored compile_module_to_executable() to CUDAModuleToFunctionConverter (#5070) (by Zhanlue Yang)
  • [refactor] Split GraphBuilder out of Graph class (#5064) (by Ailing)
  • [build] [bug] Ensure the assets folder is copied to the project directory (#5063) (by Frost Ming)
  • [bug] Remove operator ! for Expr (#5062) (by Yi Xu)
  • [Lang] [type] Disallow reading a whole bit_struct (#5061) (by Yi Xu)
  • [Lang] Struct Classes implementation (#4989) (by bsavery)
  • [Lang] [ir] Add short-circuit if-then-else operator (#5022) (by daylily)
  • [bug] Ndarray type should include primitive dtype as well (#5052) (by Ailing)
  • [Doc] Updated type system (#5054) (by Vissidarte-Herman)
  • [bug] Added type promotion support for atan2 (#5037) (by Zhanlue Yang)
  • [Lang] Build sparse matrix from ndarray (#4841) (by pengyu)
  • Set host_write to false for opengl ndarray (#5038) (by Ailing)
  • [ci] Run cpp tests via run_tests.py (#5035) (by yekuang)
  • Exit CI builds when download of prebuilt packages fails (#5043) (by PENGUINLIONG)
  • [Vulkan] Fixed vulkan backend crash on AOT examples (#5047) (by PENGUINLIONG)
  • [Lang] Fix potential precision bug when using math vector and matrix types (#5032) (by Zhao Liang)
  • [Metal] Support Ndarray (#4720) (by yekuang)
  • [Lang] [type] Refactor quant type definition APIs (#5036) (by Yi Xu)
  • [aot] Bind graph APIs to python and add mpm88 example (#5034) (by Ailing)
  • [aot] Move ArgKind as first argument in Arg class (by ailzhang)
  • [aot] Serialize built graph, deserialize and run. (by ailzhang)
  • [ci] Disable win cpu docker job test (#5033) (by Bo Qiao)
  • [doc] Update OS names (#5030) (by Bo Qiao)
  • fix fast_gui rgba bug (#5031) (by Zhao Liang)
  • [Bug] [type] Fix frontend type check for reading a whole bit_struct (#5027) (by Yi Xu)
  • [AOT] Support importing external Vulkan buffers (#5020) (by PENGUINLIONG)
  • [SIMT] Add match_all warp intrinsics (#4961) (by Zeyu Li)
  • [bug] Revert freeing ndarray memory when python GC triggers (#5019) (by Ailing)
  • [ci] Fix nightly macos (#5018) (by Bo Qiao)
  • [Llvm] Add AOT builder and loader (#5013) (by yekuang)
  • [aot] Build and run graph without serialization (by Ailing Zhang)
  • [test] Unify kernel setup for ndarray related tests (by Ailing Zhang)
  • [ci] [build] Enable ccache for windows docker (#5001) (by Frost Ming)
  • [refactor] Move get ndarray data ptr to program (#5012) (by pengyu)
  • [bug] Fixed numerical error for Atomic-Sub between unsigned values with different number of bits (#5011) (by Zhanlue Yang)
  • [llvm] Add serializable LlvmLaunchArgInfo (#4992) (by yekuang)
  • [doc] Update community section (#4943) (by yanqingzhang)
  • [SIMT] Add match_any warp intrinsics (#4921) (by Zeyu Li)
  • [Lang] [type] Fix parameter name 'range' for ti.types.quant.fixed (#5006) (by Yi Xu)
  • [misc] Version bump: v1.0.2 -> v1.0.3 (#5008) (by Haidong Lan)
  • [AOT] Supported inclusion of taichi as subdirectory for AOT modules (#5007) (by PENGUINLIONG)
  • [Doc] Branding updates. Also tests netlify. (#4994) (by Vissidarte-Herman)
  • [refactor] Get rid of data_ptr_ in Ndarray (by Ailing Zhang)
  • [refactor] Move ndarray fast fill methods to Program (by Ailing Zhang)
  • [refactor] Free ndarray's memory when python GC triggers (by Ailing Zhang)
  • [refactor] Construct ndarray from existing DeviceAllocation. (by Ailing Zhang)
  • [test] Add test for Ndarray from DeviceAllocation (by Ailing Zhang)
  • [refactor] Program owns allocated ndarrays. (by Ailing Zhang)
  • [Doc] Fix netlify cache & sync doc without pr content (#5003) (by Justin)
  • [test] Fix a few mis-configured ndarray tests (#5000) (by Ailing)
  • Update README.md (by Vissidarte-Herman)
  • [Lang] [type] Refactor quantized_types module and make quant APIs public (#4985) (by Yi Xu)
  • [Doc] Update trouble shooting URL in bug report template (#4988) (by Haidong Lan)
  • [Doc] Updated URL (#4990) (by Vissidarte-Herman)
  • [Doc] Fix docs deploy netlify test configuration (#4991) (by Justin)
  • [llvm] Use serializer for LLVM cache (#4982) (by yekuang)
  • Provision of prebuilt LLVM 10 for VS2022 (#4987) (by PENGUINLIONG)
  • [Workflow] Update release_test.sh (#4960) (by Chuandong Yan)
  • [cuda] Add block and grid level intrinsic for cuda backend (#4977) (by YuZhang)
  • [bug] Fix infinite recursion of get_offline_cache_key_of_snode_impl() (#4983) (by PGZXB)
  • [misc] Add ASTSerializer::visit(ReferenceExpression *) (#4984) (by PGZXB)
  • [llvm] Support both BC and LL cache format (#4979) (by yekuang)
  • [refactor] Improve serializer and cleanup utils (#4980) (by yekuang)
  • [Build] Improve Windows build script (#4955) (by PENGUINLIONG)
  • [llvm] Make cache writer support BC format (#4978) (by yekuang)
  • [ci] [build] Containerize Windows CPU build and test (#4933) (by Bo Qiao)
  • [llvm] Make codegen produce static llvm::Module (#4975) (by yekuang)
  • [test] Add an ndarray test in C++. (#4972) (by Ailing)
  • [build] Fixed Ilegal Instruction Error when importing PaddlePaddle module (#4969) (by Zhanlue Yang)
  • [llvm] Create ModuleToFunctionConverter (#4962) (by yekuang)
  • [bug] [simt] Fix the problem that some intrinsics are never called (#4957) (by Yi Xu)
  • [vulkan] Set kApiVersion to VK_API_VERSION_1_3 (#4970) (by Haidong Lan)
  • [ci] Add new buildbot with latest driver for Linux/Vulkan test (#4953) (by Bo Qiao)
  • [RFC] AOT for all SNodes (#4806) (by yekuang)
  • [llvm] Move cache directory to dump() (#4963) (by yekuang)
  • [lang] Add reference type support on real functions (#4889) (by Lin Jiang)
  • [refactor] Some renamings (#4959) (by yekuang)
  • [refactor] Add ArrayMetadata to store the array runtime size (#4950) (by yekuang)
  • [lang] [bug] Implement Expression serializing and fix some bugs (#4931) (by PGZXB)
  • [Lang] Add more functions to math module (#4939) (by Zhao Liang)
  • [Build] Improved building on Windows (#4925) (by PENGUINLIONG)
  • [ci] Fix Nightly (#4948) (by Bo Qiao)
  • [build] Limit -Werror to Clang-compiler only (#4947) (by Zhanlue Yang)
  • [refactor] [llvm] Remove struct_compiler_ as a member variable (#4945) (by yekuang)
  • [build] Turned off -Werror temporarily for issues with performance-bot (#4946) (by Zhanlue Yang)
  • [refactor] Remove unused snode_trees in ProgramImpl interface (#4942) (by yekuang)
  • [doc] Updated documentations for implicit type casting rules (#4885) (by Zhanlue Yang)
  • [build] Turn on -Werror on Linux and Mac platforms (#4928) (by Zhanlue Yang)
  • [build] Enable -Werror on Linux & Mac (#4941) (by Zhanlue Yang)
  • [SIMT] Add uni_sync warp intrinsics (#4927) (by 0xzhang)
  • [lang] Fix type check warnings for ti.Mesh (#4930) (by Chang Yu)
  • [Lang] Support sparse matrix datatype and storage format configuration (#4673) (by pengyu)
  • [Doc] Updated relative path (#4929) (by Vissidarte-Herman)
  • [refactor] Simplify Matrix's initializer (#4923) (by yekuang)
  • [build] Warning Suppression PR #4: Fixed warnings with MacOS (#4926) (by Zhanlue Yang)
  • [build] Warning Suppression PR #3: Eliminate warnings from third-party headers (#4920) (by Zhanlue Yang)
  • [SIMT] Add activemask warp intrinsics (#4918) (by Zeyu Li)
  • [build] Warning Suppression PR #1: Turned on -Wno-ignored-attributes & Removed unused functions (#4916) (by Zhanlue Yang)
  • [refactor] Create MatrixImpl to differentiate Taichi and Python scopes (#4853) (by yekuang)
  • [SIMT] Add syncwarp warp intrinsics (#4917) (by Zeyu Li)
  • [build] Warning Suppression PR #2: Fixed codebase warnings (#4909) (by Zhanlue Yang)
  • [test] Exit on error during Paddle windows test (#4910) (by Bo Qiao)
  • [Doc] Updated broken links (#4912) (by Vissidarte-Herman)
  • remove debug print (#4883) (by yixu)
  • [test] Cancel tests for Paddle on GPU (#4914) (by 0xzhang)
  • [Lang] [test] Copy-free interaction between Taichi and PaddlePaddle (#4886) (by 0xzhang)
  • Use Ninja generator on Windows and skip generator test (#4896) (by Frost Ming)
  • [vulkan] Add new VMA vulkan functions. (#4893) (by Bob Cao)
  • [vulkan] Fix typo for waitSemaphoreCount (#4892) (by Gabriel H)
  • [Build] [refactor] Define Cmake OpenGL runtime target (#4887) (by Bo Qiao)
  • [aot] [vulkan] Expose symbols for AOT (#4879) (by yekuang)
  • [bug] Fixed type promotion rule for bit-shift operations (#4884) (by Zhanlue Yang)
  • [Build] [refactor] Use keywords instead of plain target_link_libraries CMake (#4864) (by Bo Qiao)
  • [metal] Migrate runtime's MTLBuffer allocation to unified device API (#4865) (by yekuang)
  • [error] [lang] Improved error messages for illegal slicing or indexing to ti.field (#4873) (by Zhanlue Yang)
  • [Doc] Updated links that may break. (#4874) (by Vissidarte-Herman)
  • [metal] Complete Device API (#4862) (by yekuang)
  • [vulkan] Device API explicit semaphores (#4852) (by Bob Cao)
  • [build] Change the library output dir for export core (#4880) (by Frost Ming)
  • [refactor] Add ASTSerializer and use it to generate offline-cache-key (#4863) (by PGZXB)
  • [ci] Use the updated docker image for libtaichi_export_core (#4881) (by Bo Qiao)
  • [Doc] Add limitation about TLS optimization (#4877) (by Ailing)
  • [Build] [refactor] Define runtime build target (#4838) (by Bo Qiao)
  • [ci] Add libtaichi_export_core build for desktop in CI (#4871) (by Ailing)
  • [build] [bug] Fix a bug of skbuild that loses the root package_dir (#4875) (by Frost Ming)
  • [Bug] Remove redundant AllocStmt when lowering FrontendWhileStmt (#4870) (by Zhanlue Yang)
  • [misc] Bump version to v1.0.2 (#4867) (by Taichi Gardener)
  • [build] Install export core library to build dir (#4866) (by Frost Ming)
  • [Build] Switch to scikit-build as the build backend (#4624) (by Frost Ming)