v1.0.3
版本发布时间: 2022-06-14 07:07:38
taichi-dev/taichi最新发布版本:v1.7.2(2024-08-22 16:59:46)
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)