Taichi

Latest version: v1.7.2

Safety actively analyzes 687918 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 9 of 23

0.8.2

Full changelog:
- [bug] Fix the mapping from virtual axes to physical axes (3159) (by **Yi Xu**)
- [ci] Get rid of requirements_lint.txt. (3161) (by **Ailing**)
- [ci] Enable macos 10.14 in release.yml wip. (3158) (by **Ailing**)
- [refactor] [CUDA] Add optional metrics for KernelProfiler in Python scope (3049) (by **rocket**)
- [misc] Fix build on macos 10.14. (3155) (by **Ailing**)
- [bug] Fix Cpu/CudaDevice memory deallocation bug (3157) (by **Ye Kuang**)
- Revert "[Bug] Fix argument shadowed when there is a local variable with the same name (3105)" (3153) (by **Ailing**)
- [Lang] Use ti.linalg.SparseMatrixBuilder as sparse matrix builder (3152) (by **FantasyVR**)
- [Doc] Add docstring and documents for sparse matrix (3119) (by **Jiafeng Liu**)
- [vulkan] Inter-device memcpy API (3137) (by **Dunfan Lu**)
- [Lang] Improve sparse matrix/solver API (3145) (by **FantasyVR**)
- Fix and cleanup GGUI examples (3144) (by **Dunfan Lu**)
- [ci] [vulkan] Upgrade Dockerfile to enable Vulkan tests (2970) (by **Bo Qiao**)
- [Example] An implicit mass spring demo with sparse matrix (3116) (by **FantasyVR**)
- [misc] Version bump: v0.8.1->v0.8.2 (3149) (by **Yi Xu**)
- [refactor] Get rid of the indirection between KernelCodeGen::compile and KernelCodeGen::codegen. (by **Ailing Zhang**)
- [misc] Enable flushing when printing preprocessed ast. (by **Ailing Zhang**)
- [Bug] Throw proper error message when creating more than 32 snode trees in LLVM backend. (by **Ailing Zhang**)
- [Cuda] [opt] Fix duplicate shared memory allocation (3140) (by **Chang Yu**)
- [CI] Add pip cache (3139) (by **zstone12**)
- rgb_to_hex: fix typo and use bit operator instead of multiplication (3136) (by **gaoxinge**)
- [llvm] Establish a correspondence between SNodes and DevicePtr (3120) (by **Dunfan Lu**)
- [Metal] Support multiple SNode roots in codegen/runtime (3090) (by **Ye Kuang**)
- [Autodiff] Throw proper error message for unsupported ti.random. (3131) (by **Ailing**)
- [test] Parametrize test_ad_basics.py (3129) (by **Ye Kuang**)
- [ci] Fix sparse_solver for pylint. (3132) (by **Ailing**)
- [refactor] Enable user selected metrics for CUDA, remove print() method from class KernelProfiler (3048) (by **rocket**)
- [misc] Delete accidentally included spirv dump (3130) (by **Bob Cao**)
- [perf] Reduce SNodeTree materialization time in LLVM backends (3127) (by **Yi Xu**)
- [Lang] Move sparse matrix/solver into subfolder (3115) (by **FantasyVR**)
- [refactor] Enable pylint checking in ci and minor cleanup. (by **Ailing Zhang**)
- [refactor] Move imports to the top level. (by **Ailing Zhang**)
- [vulkan] Make atomic helper functions inline (3118) (by **Chang Yu**)
- [perf] Constant folding optimization (3108) (by **Bob Cao**)
- [Bug] Fix argument shadowed when there is a local variable with the same name (3105) (by **lin-hitonami**)
- [ci] Add back fixes for github actions windows image upgrade. (3117) (by **Ailing**)
- [doc] Update dev install about develop/install. (3113) (by **Ailing**)
- [cuda] Remove unified memory allocator (3098) (by **Dunfan Lu**)
- [refactor] Make ext_arr/any_arr/template to taichi.type.annotations. (by **Ailing Zhang**)
- [refactor] Make type annotations simple, remove dep on high level data structures. (by **Ailing Zhang**)
- [ci] Run shell scripts in CI (3034) (by **Jiasheng Zhang**)
- [Lang] Support chained assignments (3062) (by **Ce Gao**)
- [metal] Rearrange how KernelManager is initialized (3109) (by **Ye Kuang**)
- [GUI] Add context manager support for ui.Gui (3055) (by **Xuanwo**)
- [Lang] [bug] Fix support property decorator for data_oriented class (3052) (by **yihong**)
- [refactor] Work around some cyclic imports. (by **Ailing Zhang**)
- [refactor] Remove importing outside top level. (by **Ailing Zhang**)
- [refactor] Stop overriding taichi.core from taichi/lang/impl.py. (by **Ailing Zhang**)
- [metal] Separate runtime and snodes initialization (3093) (by **Ye Kuang**)
- [ci] Copy paste linux & windows fixes from presubmit to release. (3103) (by **Ailing**)
- [Doc] Add documentation for gui system and install trouble shooting. (2985) (by **Jiasheng Zhang**)
- [doc] Fix the link to the QuanTaichi paper in README.md (3102) (by **Yi Xu**)
- [doc] Remove docs subpath and update references across the codebase (3085) (by **Chengchen(Rex) Wang**)
- [Lang] Use more user-friendly exception when converting from numpy array (3058) (by **Ce Gao**)
- renable sfg test (3097) (by **Dunfan Lu**)
- [cuda] Disable unified memory and make CI pass (3067) (by **Dunfan Lu**)
- [cuda] Fix a memory alignment bug in pre-allocated memory allocator (3096) (by **Dunfan Lu**)
- Fix minor bugs in GL Device (3091) (by **Bob Cao**)
- [metal] Pull out the Runtime MSL code into its own module (3086) (by **Ye Kuang**)
- [Doc] Fix an example in the documentation for coordinate offsets (3089) (by **张皓**)
- [Example] A stable fluid demo with sparse matrix (3081) (by **Jiafeng Liu**)
- [doc] Add Vulkan into README.md (3088) (by **Bob Cao**)
- [refactor] Style police (3082) (by **Bob Cao**)
- [GUI] Extract the type casts of environment variables in misc.gui.gui into a reusable function (3065) (by **Dream Hunter**)
- [lang] Add a method to get all SNodes under a root (3083) (by **Ye Kuang**)
- [Test] Allow `ti test` work with `-a cpu, cuda`. (3066) (by **Ailing**)
- [refactor] Move the AST utils into taichi.lang.ast (3063) (by **Ye Kuang**)
- [refactor] Get rid of settings.py. (by **Ailing Zhang**)
- [refactor] Get rid of build and load_module. (by **Ailing Zhang**)
- [refactor] Move primitive_types.py to type folder. (by **Ailing Zhang**)
- [refactor] Move record.py out of ti.core. (by **Ailing Zhang**)
- [refactor] Move logging out of ti.core. (by **Ailing Zhang**)
- [ci] Try moving all torch tests to single thread. (by **Ailing Zhang**)
- [Doc] Update developer installation (3070) (by **Bo Qiao**)
- [Lang] Fix python AST print format issues in python/taichi/lang/transformer.py (3061) (by **Ce Gao**)
- [ci] Extend windows timeout. (3068) (by **Ailing**)
- [ci] Try fixing windows. (3064) (by **Ailing**)
- [Doc][autodiff] Add a section about customized gradient in autodiff. (3054) (by **Ailing**)
- [Doc] Update Type system (3043) (by **Tiantian Liu**)

0.8.1

Full changelog:
- [vulkan] Disable Vulkan validation layer (3050) (by **Ye Kuang**)
- [Doc] Update Python test doc (3011) (by **ljcc0930**)
- [Doc] Improve the documentation for profiler (3014) (by **rocket**)
- [Doc] Fix Arch Linux building guide clang dependence (3042) (by **Cinderella**)
- [Doc] Update kernels and functions (2999) (by **Mingrui Zhang**)
- [Doc] Update cpp_style.md (3040) (by **Ye Kuang**)
- [Doc] Developer installation update (2996) (by **Bo Qiao**)
- [Lang] [bug] Fix subscripting user classes in Taichi kernels (3047) (by **Yi Xu**)
- [misc] Version bump: v0.8.0->v0.8.1 (3044) (by **Yi Xu**)
- [Doc] Add docstring for init(), reset() and a few constants (3026) (by **Ye Kuang**)
- [gui] Fix mouse position error after window had been resized (3041) (by **Dunfan Lu**)
- [Doc] Performance tuning update (2997) (by **Bo Qiao**)
- [Doc] Update field (2994) (by **FantasyVR**)
- [Doc] Update interacting with external arrays (3000) (by **FantasyVR**)
- [Autodiff] Rename complex_kernel and complex_kernel_grad. (3035) (by **Ailing**)
- [Doc] Update contributor guidelines (2991) (by **Yi Xu**)
- [LLVM] Rename runtime memory allocation function (3036) (by **Bo Qiao**)
- [benchmark] [CUDA] Add the implementation of class CuptiToolkit (2923) (by **rocket**)
- [Doc] Add documentation for TLS/BLS (2990) (by **Ye Kuang**)
- [Doc] Update differentiable programming doc. (2993) (by **Ailing**)
- [Doc] Fix note format on webpage and code highlights for metaprogramming (3027) (by **Mingrui Zhang**)
- Disable validation layer with release builds (3028) (by **Bob Cao**)
- [Doc] Update the Type system section (3010) (by **Tiantian Liu**)
- [Doc] Add documentation for sparse computation (2983) (by **Yuanming Hu**)
- [Doc] Update metaprogramming doc (3009) (by **Mingrui Zhang**)
- [Doc] Improve the documentation for debugging and GGUI (3002) (by **Chang Yu**)
- [ci] Fix release.yml syntax error (3022) (by **Jiasheng Zhang**)
- [misc] Get changelogs via tags instead of commit messages (3021) (by **Yi Xu**)
- [Doc] Update documentation for fields (advanced) (3012) (by **Yi Xu**)
- [Doc] Improve the documentation for C++ style guide (3001) (by **Ye Kuang**)
- [Doc] Fix typo in data_oriented docstring (3005) (by **ljcc0930**)
- [Doc] Remove 'Versioning and releases'; Fix 'Documentation writing guide' (2987) (by **Yi Xu**)
- [misc] Add Vulkan as a target for ti diagnose (2995) (by **Yuheng Zou**)
- [Opt] [ir] [refactor] Remove exceptions from IR pass extract_constant (2966) (by **lin-hitonami**)
- [refactor] [benchmark] Add ti.profiler in python scope (2922) (by **rocket**)
- [refactor] Private field names and function restructure in cc backend. (2989) (by **Jiasheng Zhang**)
- [cpu] Cpu device 1/n: memory allocation (2984) (by **Dunfan Lu**)
- [refactor] Refactored and unified CC backend, removed CCProgram and use CCProgramImpl instead. (2978) (by **Jiasheng Zhang**)
- [CI] Better CI title check info (2986) (by **yihong**)
- [ci] Disable fail-fast matrix on release jobs. (2982) (by **Ailing**)
- [cuda] Cuda Device API 1/n: memory allocation (2981) (by **Dunfan Lu**)
- [misc] Add deactivate_all_snodes and ti.FieldsBuilder.deactivate_all (2967) (by **ljcc0930**)
- [misc] Remove unnecessary symlink step. (2976) (by **Ailing**)
- [ci] Releases must be done on buildbot-ubuntu machine. (2977) (by **Ailing**)
- [ci] Fix OOM on nightly release. (2975) (by **Ailing**)
- [Lang] Add error message for printing an incomplelely-defined field (2979) (by **yihong**)
- [refactor] Minimize Python context (2971) (by **Yi Xu**)
- [Doc] Installation with mirror source (2946) (by **FantasyVR**)

0.8.0

Packed Mode
Previously in Taichi, all non-power-of-two dimensions of a field were automatically padded to a power of two. For instance, a field of shape `(18, 65)` would have internal shape `(32, 128)`. Although the padding had many benefits such as allowing fast and convenient bitwise operations for coordinate handling, it would consume potentially much more memory than people thought.

For people indeed want smaller memory usage, we now introduce an optional packed mode. In packed mode, no more padding will be applied so a field will not have a larger internal shape when some of its dimensions are not power-of-two. The downside is that the runtime performance will regress slightly.

A switch named `packed` for `ti.init()` decides whether to use packed mode:
python
ti.init() default: packed=False
a = ti.field(ti.i32, shape=(18, 65)) padded to (32, 128)

python
ti.init(packed=True)
a = ti.field(ti.i32, shape=(18, 65)) no padding

GGUI

A new GUI system, which is codenamed GGUI, is added to Taichi. GGUI will use GPUs for rendering, which enables it to be much faster than the original `ti.gui`, and to render 3d meshes and particles. It also comes with a brand new set of immediate mode widgets APIs.

Sample 3D code:

python
window = ti.ui.Window("Hello Taichi", (1920, 1080))

canvas = window.get_canvas()
scene = ti.ui.Scene()
camera = ti.ui.make_camera()

while window.running:

camera.position(...)
camera.lookat(...)
scene.set_camera(camera)

scene.point_light(pos=(...), color=(...))

vertices, centers, etc. are taichi fields
scene.mesh(vertices, ...)
scene.particles(centers, radius, ...)

canvas.scene(scene)
window.show()


Sample IMGUI code:

python
window = ti.ui.Window("Hello Taichi", (500, 500))
canvas = window.get_canvas()

gx, gy, gz = (0, -9.8, 0)

while window.running:

window.GUI.begin("Greetings", 0.1, 0.1, 0.8, 0.15)
window.GUI.text("Welcome to TaichiCon !")
if window.GUI.button("Bye"):
window.running = False
window.GUI.end()

window.GUI.begin("Gravity", 0.1, 0.3, 0.8, 0.3)
gx = window.GUI.slider_float("x", gx, -10, 10)
gy = window.GUI.slider_float("y", gy, -10, 10)
gz = window.GUI.slider_float("z", gz, -10, 10)
window.GUI.end()

canvas.set_background_color(color)
window.show()


For more examples, please checkout `examples/ggui_examples` in the taichi repo.
Dynamic SNode Allocation
Previously in Taichi, we cannot allocate new fields after the kernel's execution. Now we can use a new class `FieldsBuilder` to support dynamic allocation.

`FieldsBuilder` has the same data structure declaration API as the previous `root`, such as `dense()`, `pointer()` etc. After declaration, we need to call the `finalize()` function to compile the `FieldsBuilder` to an `SNodeTree` object.

Example usage for `FieldsBuilder`:

py
import taichi as ti
ti.init()

ti.kernel
def func(v: ti.template()):
for I in ti.grouped(v):
v[I] += 1

fb = ti.FieldsBuilder()
x = ti.field(dtype = ti.f32)
fb.dense(ti.ij, (5, 5)).place(x)
fb_snode_tree = fb.finalize() Finalizing the FieldsBuilder and returns a SNodeTree
func(x)

fb2 = ti.FieldsBuilder()
y = ti.field(dtype = ti.f32)
fb2.dense(ti.i, 5).place(y)
fb2_snode_tree = fb2.finalize() Finalizing the FieldsBuilder and returns a SNodeTree
func(y)


Additionally, `root` now is implemented by `FieldsBuilder` implicitly, so we can allocate the fields directly under `root`.
py
import taichi as ti
ti.init() ti.root = ti.FieldsBuilder()

ti.kernel
def func(v: ti.template()):
for I in ti.grouped(v):
v[I] += 1

x = ti.field(dtype = ti.f32)
ti.root.dense(ti.ij, (5, 5)).place(x)
func(x) automatically called ti.root.finalize()
ti.root = new ti.FieldsBuilder()

y = ti.field(dtype = ti.f32)
ti.root.dense(ti.i, 5).place(y)
func(y) automatically called ti.root.finalize()


Furthermore, after we called the `finalize()` of a `FieldsBuilder`, it will return a finalized `SNodeTree` object. If we do not want to use the fields under this `SNodeTree`, we could call `destroy()` manually to recycle the memory into the memory pool.

e.g.:
py
import taichi as ti
ti.init()

ti.kernel
def func(v: ti.template()):
for I in ti.grouped(v):
v[I] += 1

fb = ti.FieldsBuilder()
x = ti.field(dtype = ti.f32)
fb.dense(ti.ij, (5, 5)).place(x)
fb_snode_tree = fb.finalize() Finalizing the FieldsBuilder and returns a SNodeTree
func(x)

fb_snode_tree.destroy()
func(x) cannot be used anymore

Full changelog:
- [doc] Fix several typos in doc (2972) (by **Ziyi Wu**)
- [opengl] Runtime refactor 1/n (2965) (by **Bob Cao**)
- [refactor] Avoid passing device strings into torch (2968) (by **Yi Xu**)
- [misc] Fix typos in examples/simulation/fractal.py (2882) (by **Yilong Li**)
- [opt] Support atomic min/max in warp reduction optimization (2956) (by **Yi Xu**)
- [Bug] Add GIL that was accidentally removed in PR 2939 back (2964) (by **lin-hitonami**)
- [misc] Support clean command to setup.py. (by **Ailing Zhang**)
- [misc] Fix some build warnings. (by **Ailing Zhang**)
- [doc] Add docstring for GGUI python API (2958) (by **Dunfan Lu**)
- [gui] Move all ggui kernels to python by using taichi fields as staging buffers (2957) (by **Dunfan Lu**)
- [opt] Add conservative alias analysis for ExternalPtrStmt (2952) (by **Yi Xu**)
- [opengl] Move old runtime onto Device API (2945) (by **Bob Cao**)
- [Lang] Remove deprecated usage of ti.Matrix.__init__ (2950) (by **Yi Xu**)
- [Lang] Add data_handle property to Ndarray (2947) (by **Yi Xu**)
- [misc] Throw proper error if real function is not properly annotated. (2943) (by **Ailing**)
- [gui] Fix normal bug when default fp is not f32. (2944) (by **Dunfan Lu**)
- [opengl] Device API: Adding GL error checks & correct memory mapping flags (2941) (by **Bob Cao**)
- [Lang] Support configure sparse solver ordering (2907) (by **FantasyVR**)
- [refactor] remove Program::KernelProxy (2939) (by **lin-hitonami**)
- [doc] Update README.md (2940) (by **Yuanming Hu**)
- [opengl] Initial Device API work (2925) (by **Bob Cao**)
- [Lang] Support ti_print for wasm (2910) (by **squarefk**)
- [Lang] Fix ti func with template and add corresponding tests (2871) (by **squarefk**)
- [doc] Update README.md (2937) (by **Yuanming Hu**)
- [metal] Fix metal codegen to make OSX 10.14 work (2935) (by **Ye Kuang**)
- [Doc] Add developer installation to README.md (2933) (by **Ye Kuang**)
- [misc] Edit preset indices (2932) (by **ljcc0930**)
- fratal example (2931) (by **Dunfan Lu**)
- [refactor] Exchange compiled_grad_functions and compiled_functions in kernel_impl.py (2930) (by **Yi Xu**)
- [Misc] Update doc links (2928) (by **FantasyVR**)
- Disable a few vulkan flaky tests. (2926) (by **Ailing**)
- [llvm] Remove duplicated set dim attribute for GlobalVariableExpression (2929) (by **Ailing**)
- [ci] Artifact uploading before test in release.yml (2921) (by **Jiasheng Zhang**)
- [bug] Fix the Bug that cannot assign a value to a scalar member in a struct from python scope (2894) (by **JeffreyXiang**)
- [misc] Update examples (2924) (by **Taichi Gardener**)
- [ci] Enable tmate session if release test fails. (2919) (by **Ailing**)
- [refactor] [CUDA] Wrap the default profiling tool as EventToolkit , add a new class for CUPTI toolkit (2916) (by **rocket**)
- [metal] Fix upperbound for list-gen and struct-for (2915) (by **Ye Kuang**)
- [ci] Fix linux release forgot to remove old taichi (2914) (by **Jiasheng Zhang**)
- [Doc] Add docstring for indices() and axes() (2917) (by **Ye Kuang**)
- [refactor] Rename SNode::n to SNode::num_cells_per_container (2911) (by **Ye Kuang**)
- Enable deploy preview if changes are detected in docs. (2913) (by **Ailing**)
- [refactor] [CUDA] Add traced_records_ for KernelProfilerBase, refactoring KernelProfilerCUDA::sync() (2909) (by **rocket**)
- [ci] Moved linux release to github action (2905) (by **Jiasheng Zhang**)
- [refactor] [CUDA] Move KernelProfilerCUDA from program/kernel_profiler.cpp to backends/cuda/cuda_profiler.cpp (2902) (by **rocket**)
- [wasm] Fix WASM AOT module builder order (2904) (by **Ye Kuang**)
- [CUDA] Add a compilation option for CUDA toolkit (2899) (by **rocket**)
- [vulkan] Support for multiple SNode trees in Vulkan (2903) (by **Dunfan Lu**)
- add destory snode tree api (2898) (by **Dunfan Lu**)

0.7.32

Full changelog:
- [vulkan] Turn off Vulkan by default and add dev install instructions (2897) (by **Dunfan Lu**)
- [Misc] Fix the path in conda_env.yaml (2895) (by **Ce Gao**)
- [ci] Rollback buggy Dockerfile (by **Dunfan Lu**)
- [bug] [opt] Disable putting pointers into global tmp buffer (2888) (by **Yi Xu**)
- [Llvm] Increase the number of arguments allowed in a kernel (2886) (by **Yi Xu**)
- [gui] GGUI fix undefined variable (2885) (by **Mingrui Zhang**)
- [ci] Build and Release Vulkan in CI/CD (2881) (by **Dunfan Lu**)
- [Lang] Refine semantics of ti.any_arr (2875) (by **Yi Xu**)
- [refactor] OpenGL program impl (2878) (by **Dunfan Lu**)
- [refactor] Vulkan program impl (2876) (by **Dunfan Lu**)
- Clean up sparse matrix (2872) (by **squarefk**)
- Re-enable sfg test on CUDA (2874) (by **Bo Qiao**)
- [refactor] Unify llvm_program_ and metal_program_ in Program class. (by **Ailing Zhang**)
- [refactor] Let LlvmProgramImpl inherit ProgramImpl. (by **Ailing Zhang**)
- [refactor] Init ProgramImpl from MetalProgramImpl. (by **Ailing Zhang**)
- [CUDA] [bug] Fix CUDA error "allocate_global (DataType type) misaligned address" (2863) (by **rocket**)
- [Lang] Experimental SpMV and direct linear solvers (2853) (by **FantasyVR**)
- [refactor] Get rid of some unnecessary get_current_program(). (by **Ailing Zhang**)
- [ci] Enable CI on pushing to master. (2865) (by **Ailing**)
- [Lang] Support fill, from_numpy, to_numpy for ti.ndarray (2868) (by **Yi Xu**)

0.7.31

Full changelog:
- [doc] Remove links from documentation articles to API reference (2866) (by **Chengchen(Rex) Wang**)
- [Lang] Support struct fors on ti.any_arr (2857) (by **Yi Xu**)
- [ci] M1 release (2855) (by **Jiasheng Zhang**)
- [Doc] Update the API reference section. (2856) (by **Chengchen(Rex) Wang**)
- [LLVM] [Bug] fix typo of PR 2781 (2854) (by **rocket**)
- [Vulkan] Use reference counting based wrapper layer (2849) (by **Bob Cao**)
- [gui] Two sided mesh (2851) (by **Dunfan Lu**)
- [refactor] Make ti.ext_arr a special case of ti.any_arr (2850) (by **Yi Xu**)
- [Lang] Add ti.Vector.ndarray and ti.Matrix.ndarray (2808) (by **Yi Xu**)
- [ci] No need to specify arch on M1 CI. (2845) (by **Ailing**)
- [Lang] Customized struct support (2627) (by **Andrew Sun**)
- [Lang] Fix ti test parameters (2830) (by **squarefk**)
- [ci] Enable verbose on M1 CI to collect more info on hanging jobs. (2844) (by **Ailing**)
- [ci] Fixed bug of wrong os parameter (2843) (by **Jiasheng Zhang**)
- [gui] GGUI 17/n: doc (2842) (by **Dunfan Lu**)
- [gui] GGUI 16/n: examples (2841) (by **Dunfan Lu**)
- [refactor] Move FrontendContext from global into Callable class. (by **Ailing Zhang**)
- [refactor] Decouple AsyncEngine with Program. (by **Ailing Zhang**)
- [refactor] Decouple MemoryPool with Program. (by **Ailing Zhang**)
- [refactor] Decouple opengl codegen compile with Program. (by **Ailing Zhang**)
- [refactor] Unify compile() for LlvmProgramImpl and MetalProgramImpl. (by **Ailing Zhang**)
- [refactor] Initial MetalProgramImpl implementation. (by **Ailing Zhang**)
- [gui] GGUI small fixups (2840) (by **Dunfan Lu**)
- [ci] Fixed bugs of double env in release.yml (2838) (by **Jiasheng Zhang**)
- [Lang] Let rescale_index support SNode as input parameter (2826) (by **Jack12xl**)
- [refactor] Minor cleanup in program.cpp. (by **Ailing Zhang**)
- [gui] GGUI 15/n: Python-side code (2832) (by **Dunfan Lu**)
- [gui] GGUI 14/n: Shaders (2829) (by **Dunfan Lu**)
- [Lang] Experimental sparse matrix support on CPUs (2792) (by **FantasyVR**)
- [Vulkan] Add relaxed FIFO presentation mode (2828) (by **Bob Cao**)
- [ci] Conditional build matrix on release (2819) (by **Jiasheng Zhang**)
- [gui] GGUI 13/n: Pybind stuff (2825) (by **Dunfan Lu**)
- [gui] GGUI 12/n: Window and Canvas (2824) (by **Dunfan Lu**)
- [gui] GGUI 11/n: Renderer (2818) (by **Dunfan Lu**)
- [gui] GGUI 7.5/n: Avoid requiring CUDA toolchains to compile GGUI (2821) (by **Dunfan Lu**)
- [vulkan] Let me pass (2823) (by **Dunfan Lu**)
- [ci] Add timeout for every job in presubmit.yml (2820) (by **Jiasheng Zhang**)
- [Vulkan] Device API Multi-streams, multi-queue, and initial multi-thread support (2802) (by **Bob Cao**)
- [Doc] Fix example path and conda instruction link (2815) (by **Bo Qiao**)
- [Lang] Fix unfolding subscripting inside ti.external_func_call() (2806) (by **squarefk**)
- Enable tensor subscripting as input for external function call (2812) (by **squarefk**)
- [gui] GGUI 10/n: IMGUI (2809) (by **Dunfan Lu**)
- [Vulkan] [ci] Enable and release Vulkan (2795) (by **Chang Yu**)
- [Vulkan] Fixing floating point load/store/atomics on global temps and context buffers (2796) (by **Bob Cao**)
- [gui] GGUI 9/n: Renderables and Scene (2803) (by **Dunfan Lu**)
- [vulkan] Fix bug in empty root buffer (2807) (by **Chang Yu**)
- [Lang] Fix tensor based grouped ndrange for (2800) (by **squarefk**)
- [gui] GGUI 8/n: Renderable class (2798) (by **Dunfan Lu**)

0.7.30

Full changelog:
- [gui] GGUI 7/n: Vertex class, and kernels for updating VBO/IBO/texture (2797) (by **Dunfan Lu**)
- [Refactor] Make Layout an Enum class and move it away from impl.py (2774) (by **Yi Xu**)
- app context and swap chain (2794) (by **Dunfan Lu**)
- [Refactor] Move snode_tree_buffer_manager and llvm_runtime to private. (by **Ailing Zhang**)
- [Refactor] Move llvm_context_host/device to private. (by **Ailing Zhang**)
- [Refactor] Further cleanup Program constructor. (by **Ailing Zhang**)
- [Refactor] Move check_runtime_error to LlvmProgramImpl. (by **Ailing Zhang**)
- [Refactor] Simplify synchronize and materialize_runtime in Program. (by **Ailing Zhang**)
- [gui] GGUI 5/n: remove some stuff (2793) (by **Dunfan Lu**)
- [ci] Added gpu test timeout (2791) (by **Jiasheng Zhang**)
- [Vulkan] [test] Fix Vulkan CI test bug & Enable tests for Vulkan backend (2776) (by **Yu Chang**)
- [vulkan] Graphics Device API (2789) (by **Dunfan Lu**)
- [ci] Changed nightly tag from pre-release to post-release (2786) (by **Jiasheng Zhang**)
- [ci] Add Apple M1 buildbot (2731) (by **ljcc0930**)
- [Refactor] Move a few helpers in LlvmProgramImpl to private. (by **Ailing Zhang**)
- [Refactor] Cleanup llvm specific apis in program.h (by **Ailing Zhang**)
- [Ir] Clean up frontend ir for global tensor and local tensor (2773) (by **squarefk**)
- [Refactor] Only prepare sandbox for cc backend. (2775) (by **Ailing**)
- [gui] Remove DPI settings (2767) (by **Ye Kuang**)
- [Doc] Add instructions for how to use conda (2764) (by **Ye Kuang**)
- [Lang] Enable treating external arrays as Taichi vector/matrix fields (2727) (by **Yi Xu**)
- [Opt] [ir] Optimize offload (2673) (by **squarefk**)
- [Refactor] Add initialize_llvm_runtime_system to LlvmProgramImpl. (by **Ailing Zhang**)
- [Refactor] Add materialize_snode_tree to LlvmProgramImpl. (by **Ailing Zhang**)
- [Refactor] Move initialize_llvm_runtime_snodes to LlvmProgramImpl. (by **Ailing Zhang**)
- [Refactor] Move clone_struct_compiler_initial_context to LlvmProgramImpl. (by **Ailing Zhang**)
- [Refactor] Move is_cuda_no_unified_memory to CompileConfig. (by **Ailing Zhang**)
- [Refactor] Add maybe_initialize_cuda_llvm_context to LlvmProgramImpl. (by **Ailing Zhang**)
- [Refactor] Add get_snode_num_dynamically_allocated to LlvmProgramImpl. (by **Ailing Zhang**)
- [Refactor] Move print_memory_profiler_info to LlvmProgramImpl. (by **Ailing Zhang**)
- [Refactor] Move print_list_manager_info to LlvmProgramImpl. (by **Ailing Zhang**)
- [Refactor] Move runtime_query to LlvmProgramImpl. (by **Ailing Zhang**)
- [Refactor] Move get_llvm_context to LlvmProgramImpl. (by **Ailing Zhang**)
- [Refactor] Move preallocated_device_buffer into LlvmProgramImpl. (by **Ailing Zhang**)
- [Refactor] Move thread_pool into LlvmProgramImpl. (by **Ailing Zhang**)
- [Refactor] Move runtime_mem_info into LlvmProgramImpl. (by **Ailing Zhang**)
- [Refactor] Move llvm_runtime to LlvmProgramImpl. (by **Ailing Zhang**)
- [Refactor] Move llvm_context_device to LlvmProgramImpl. (by **Ailing Zhang**)
- [Refactor] Move llvm_context_host to LlvmProgramImpl. (by **Ailing Zhang**)
- [Refactor] Move snode_tree_buffer_manager into LlvmProgramImpl. (by **Ailing Zhang**)
- [Doc] Several dev install doc improvements. (2741) (by **Ailing**)
- [ci] Fix clang-format version to 10 (2739) (by **Ailing**)
- [Test] Unify tests decorators with ti.test() (2674) (by **squarefk**)
- [Doc] Fix --user in dev install instruction. (2732) (by **Ailing**)
- [test] Fix potential memory error when DecoratorRecorder hasn't been reset correctly (2735) (by **squarefk**)
- [ci] Fix GPU buildbot paths and configs (2728) (by **Yi Xu**)
- [ci] Reduce the number of python wheels built nightly (2726) (by **Jiasheng Zhang**)
- [ir] Internal function call now supports arguments and i32 return value (2722) (by **Yuanming Hu**)
- [vulkan] Fix dumb memory error (2721) (by **Bob Cao**)
- [refactor] Remove unneccessary constructor argument (2720) (by **saltyFamiliar**)
- [Misc] Add submodule Eigen (2707) (by **FantasyVR**)
- Pin yapf version to 0.31.0. (2710) (by **Ailing**)
- [vulkan] [test] Support full atomic operations on Vulkan backend (2709) (by **Yu Chang**)
- [Vulkan] Move vulkan to device API (2695) (by **Bob Cao**)
- [Doc] Update developer install doc to use setup.py. (2706) (by **Ailing**)
- [ci] Fixed pypi version (2708) (by **Jiasheng Zhang**)
- [Lang] Redesign Ndarray class and add ti.any_arr() annotation (2703) (by **Yi Xu**)
- [Bug] Close the kernel context when failing to compile AST (2704) (by **Calvin Gu**)
- [Doc] Add gdb debug instructions to dev utilities. (2702) (by **Ailing**)
- [vulkan] Better detect Vulkan availability (2699) (by **Yu Chang**)
- [benchmark] [refactor] Move fill() and reduction() into Membound suite, calculate the geometric mean of the time results (2697) (by **rocket**)
- [ci] Added taichi nightly auto release to github action (2670) (by **Jiasheng Zhang**)
- [Misc] Keep debug symbols/line numbers in taichi_core.so by setting DEBUG=1. (2694) (by **Ailing**)
- [vulkan] [test] Enable Vulkan backend on OS X (2692) (by **Yu Chang**)
- [Refactor] Remove is_release() in the codebase. (2691) (by **Ailing**)
- [doc] fix outdated links of examples in examples.md (2693) (by **Yu Chang**)
- [Refactor] Make is_release always True and delete runtime dep on TAICHI_REPO_DIR. (2689) (by **Ailing**)
- [CUDA] Save an extra host to device copy if arg_buffer is already on device. (2688) (by **Ailing**)
- [Refactor] Allow taichi_cpp_tests run in release mode as well. (2686) (by **Ailing**)
- [Refactor] Re-enable gdb attach on crash. (2687) (by **Ailing**)
- [Lang] Add a Ndarray class to serve as an alternative to dense scalar fields (2676) (by **Yi Xu**)
- [gui] GGUI 4/n: Vulkan GUI backend utils (2672) (by **Dunfan Lu**)
- [Test] Smarter enumerating features and raise exception when not supported (2679) (by **squarefk**)
- [vulkan] Querying features like a mad man (2671) (by **Bob Cao**)
- [IR] Support local tensor (2637) (by **squarefk**)
- [vulkan] Check that additional extensions are supported before adding them (2667) (by **Dunfan Lu**)
- [vulkan] [test] Fix bugs detected by tests & Skip unnecessary tests for Vulkan backend (2664) (by **Yu Chang**)

Page 9 of 23

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.