Full changelog:
- [Doc] Add docstring for AutoDiff part (2630) (by **ljcc0930**)
- [vulkan] Move SPIR-V type capabilities into VulkanCapabilities & fix compilation errors (2628) (by **Yu Chang**)
- [vulkan] Use native struct types when supported & fix performance (2621) (by **Bob Cao**)
- [vulkan] Dynamically load Vulkan (2623) (by **Dunfan Lu**)
- [vulkan] Fix vulkan rand (2622) (by **Dunfan Lu**)
- [benchmark] Add query_kernel_profiler_() and benchmark/misc for performance monitoring (2601) (by **rocket**)
- [vulkan] Detect Vulkan / SPIR-V version & enabling required features (2615) (by **Bob Cao**)
- [vulkan] Add SPIRV-Headers as a submodule (2608) (by **Ye Kuang**)
- [ci] Prevent clang OOM (2620) (by **Ye Kuang**)
- [IR] Init GlobalTensorElementExpression and PtrOffsetStmt (2543) (by **squarefk**)
- [Lang] [refactor] Move SNode property calculation from materialization time to construction time (2600) (by **Yi Xu**)
- [Doc] Add python docstring in misc/util.py (2599) (by **rocket**)
- [Doc] Fix typo of PR 2586 (2613) (by **ljcc0930**)
- [vulkan] Draft: Remove shaderc on Windows & Add spirv-tools's optimization (2605) (by **Bob Cao**)
- [Lang] Support to destroy a SnodeTree and manage the memory (2583) (by **ljss**)
- [Refactor] Split transformer.py into StmtBuilder and ExprBuilder (Stage 1) (2495) (by **xumingkuan**)
- [Doc] Add Python docstring for some operators (2586) (by **ljss**)
- [Doc] Doc string for common_ops.py (2611) (by **ljcc0930**)
- [Doc] Fix return type of Python Docstring in ops.py (2609) (by **Rachel Gu**)
- [Doc] Add Python docstrings for several APIs (2606) (by **Ye Kuang**)
- [doc] Add python docstring for gui.py (2604) (by **Jiasheng Zhang**)
- [Doc] Add Python docstring for functions in matrix.py, impl.py, util.py and ops.py (2602) (by **Mingrui Zhang**)
- [opengl] Work group reduction (2595) (by **Bob Cao**)
- [bug] [vulkan] Fix bugs in SPIR-V codegen exposed under Linux (2603) (by **Yu Chang**)
- [Docs] Add docs for Expr class and functions in linalg.py (2597) (by **squarefk**)
- [Refactor] Added axes() function in impl.py (2594) (by **cruedo**)
- [ci] Fix one tiny bug (2598) (by **Jiasheng Zhang**)
- [ci] Fix appveyor with new building procedure (2596) (by **Jiasheng Zhang**)
- [Doc] Add Python docstring in several places (2592) (by **Yi Xu**)
- [Doc] Add Python Docstring in ops.py (2593) (by **Rachel Gu**)
- [Doc] Add Python docstring for Matrix class (2587) (by **FantasyVR**)
- [bug] recursively include examples in distribution script (2591) (by **Andrew Sun**)
- [Vulkan] Add SPIR-V codegen on Vulkan backend (2582) (by **Yu Chang**)
- [Doc] Add python docstring for misc.image class (2589) (by **Yidong Ma**)
- [Misc] Ignore the warning when first time finalizing ti.root(). (2584) (by **ljcc0930**)
- [ci] Correct windows build and test in CI (2576) (by **Jiasheng Zhang**)
- [refactor] Correct a few indices->axes renamings (2577) (by **Ye Kuang**)
- [Doc] Add Python docstring for SNode (2580) (by **Ye Kuang**)
- [opengl] Use OpenGL window visible hint instead of hiding after creation (2581) (by **Bob Cao**)
- [Refactor] Renamed ti.Index to ti.Axis (2560) (by **cruedo**)
- [Perf] Reduce GL backend's overhead (driver overhead & copy overhead) (2532) (by **Bob Cao**)
- [IR] Update CHI example to match SNode API (2574) (by **bx2k**)
- [Lang] Change the data layout for vector fields with that needs grad (2575) (by **Dunfan Lu**)
- [Vulkan] Add Vulkan to Taichi (2573) (by **Ye Kuang**)
- [IR] Support "packed" mode where shape will not be padded to a power of two (2541) (by **Yi Xu**)
- [vulkan] Split into managed and reference devices (2570) (by **Ye Kuang**)
- [Metal] Change Aot module for handling template arguments (2529) (by **Rachel Gu**)
- [refactor] Cleaned taichi/core/settings related import (2567) (by **Jiasheng Zhang**)
- [vulkan] Add Vulkan launcher (2562) (by **Ye Kuang**)
- [Bug] Fix racing in llvm bc generation. (2569) (by **Ailing**)
- [ci] Quick fix: bugs in upload.py (2568) (by **Jiasheng Zhang**)
- [ci] Allow build specific commit when uploading, used new building procedure. (2563) (by **Jiasheng Zhang**)
- [vulkan] Add GLSL-based codegen for Vulkan (2557) (by **Ye Kuang**)