taichi

Productive, portable, and performant GPU programming in Python.

APACHE-2.0 License

Downloads
32.8K
Stars
24.7K
Committers
222

Bot releases are hidden (Show)

taichi - v0.7.2

Published by yuanming-hu almost 4 years ago

Highlights:

  • GUI
    • Support fast_gui on macOS (#1981) (by Ye Kuang)

Full changelog:

  • [blender] Fix inspect.stack() not working in Blender with sourceinspect 0.0.4 (#1992) (by 彭于斌)
  • [GUI] [mac] Support fast_gui on macOS (#1981) (by Ye Kuang)
  • [test] Disable SFG benchmark tests (#1986) (by Ye Kuang)
taichi - v0.7.1

Published by yuanming-hu almost 4 years ago

Highlights:

  • Bug fixes
    • Fix some missing operator overrides like rlshift (#1978) (by 彭于斌)
  • CUDA backend
    • Support NVIDIA RTX 3000 series GPUs (#1983) (by Yuanming Hu)
  • Language and syntax
    • Add ti.loop_unique(val) to improve atomics demotion (#1961) (by xumingkuan)
  • Type system
    • Implement is_primitive and refactor primitive type equality check (#1975) (by Xuanda Yang)

Full changelog:

  • [misc] Fix compabtility with pybind11 2.6 (#1984) (by Yuanming Hu)
  • [CUDA] Support NVIDIA RTX 3000 series GPUs (#1983) (by Yuanming Hu)
  • [metal] Create helper methods for TLS codegen (#1982) (by Ye Kuang)
  • [Bug] [lang] Fix some missing operator overrides like rlshift (#1978) (by 彭于斌)
  • [type] Add CustomIntType/BitStructType and corresponding SNodes (#1968) (by Yuanming Hu)
  • [Type] [refactor] Implement is_primitive and refactor primitive type equality check (#1975) (by Xuanda Yang)
  • [async] Add allocator async state (#1973) (by Ye Kuang)
  • [Lang] [opt] Add ti.loop_unique(val) to improve atomics demotion (#1961) (by xumingkuan)
taichi - v0.7.0

Published by yuanming-hu almost 4 years ago

Highlights:

  • Error messages
    • Use print directly instead of builtin warnings module (#1969) (by 彭于斌)
  • Metal backend
    • Support assert() (#1959) (by Ye Kuang)
  • Type system
    • Remove LegacyVectorType (#1967) (by Jiafeng Liu)
    • Make PrimitiveTypeID a public enum (#1965) (by Xuanda Yang)
    • Make TypeFactory Global (#1963) (by Jiafeng Liu)
    • Adopt the new type system in Stmt (#1957) (by Yuanming Hu)

Full changelog:

  • [Error] [ipython] Use print directly instead of builtin warnings module (#1969) (by 彭于斌)
  • [Type] [refactor] Remove LegacyVectorType (#1967) (by Jiafeng Liu)
  • [windows] [gui] Support ti.GUI(fast_gui=True) on Win32 (#1953) (by 彭于斌)
  • [Type] [refactor] Make PrimitiveTypeID a public enum (#1965) (by Xuanda Yang)
  • [misc] Set CMAKE_CXX_STANDARD to 17 (#1964) (by xumingkuan)
  • [Type] [refactor] Make TypeFactory Global (#1963) (by Jiafeng Liu)
  • [type] Remove DataType::width (#1962) (by Yuanming Hu)
  • [Metal] Support assert() (#1959) (by Ye Kuang)
  • [type] [refactor] Remove DataType::data_type (#1960) (by Taichi Gardener)
  • [Type] Adopt the new type system in Stmt (#1957) (by Yuanming Hu)

More details on the v0.7 changes will be posted later.

taichi - v0.6.41

Published by yuanming-hu about 4 years ago

Highlights:

  • Bug fixes
    • Fix error when subscripting a dict (#1950) (by 彭于斌)
    • "ext_arr.shape" should return "ti.Expr" instead of "ti.core.Expr" (#1939) (by 彭于斌)
  • GUI
    • Support "ti.GUI(fast_gui=True)" for zero-copy while gui.set_image(img) (#1922) (by 彭于斌)
  • Metal backend
    • Support ti.block_dim() and ti.cfg.saturating_grid_dim (#1947) (by Ye Kuang)
  • Performance improvements
    • Support thread local storage for reduction in struct-fors (#1941) (by Yuanming Hu)

Full changelog:

  • [Bug] [lang] Fix error when subscripting a dict (#1950) (by 彭于斌)
  • [refactor] Add format_error_message() method (#1955) (by Ye Kuang)
  • [async] Use llvm::SmallVector/llvm:SmallSet for latest state readers (#1951) (by Ye Kuang)
  • [metal] Support TLS for struct-for tasks (#1949) (by Ye Kuang)
  • [Metal] Support ti.block_dim() and ti.cfg.saturating_grid_dim (#1947) (by Ye Kuang)
  • [type] Add basic implementations of VectorType and PointerType (#1948) (by Yuanming Hu)
  • [refactor] Move OffloadedStmt::TaskType to a separate file (#1946) (by xumingkuan)
  • [Bug] [lang] "ext_arr.shape" should return "ti.Expr" instead of "ti.core.Expr" (#1939) (by 彭于斌)
  • [Perf] Support thread local storage for reduction in struct-fors (#1941) (by Yuanming Hu)
  • [async] Do not keep latest state readers in SFG (#1945) (by xumingkuan)
  • [refactor] VectorType -> LegacyVectorType (#1943) (by Taichi Gardener)
  • [refactor] Remove obsolete AsyncEngine::fuse() (#1944) (by Taichi Gardener)
  • [type] Initial TypeFactory class (#1942) (by Yuanming Hu)
  • [GUI] [linux] Support "ti.GUI(fast_gui=True)" for zero-copy while gui.set_image(img) (#1922) (by 彭于斌)
  • [misc] Add misc/fetch_active_contributor.py (#1938) (by Yuanming Hu)
taichi - v0.6.40

Published by yuanming-hu about 4 years ago

Highlights:

  • GUI
    • Support creating fullscreen window by "ti.GUI(fullscreen=True)" (#1921) (by 彭于斌)

Full changelog:

  • [misc] Add a link to TaichiHub playground in README.md (#1933) (by 彭于斌)
  • [test] Add a benchmark for SFG edges' two-level map (#1927) (by Ye Kuang)
  • [async] Switch to llvm::SmallVectorllvm::SmallSet for edges (#1936) (by Ye Kuang)
  • [async] [opt] Field value killing analysis (#1929) (by xumingkuan)
  • [ir] Add the case of bit_shr to binary_op_type_symbol (#1930) (by xumingkuan)
  • [GUI] [linux] Support creating fullscreen window by "ti.GUI(fullscreen=True)" (#1921) (by 彭于斌)
taichi - v0.6.39

Published by yuanming-hu about 4 years ago

Full changelog:

  • [refactor] Use PrimitiveType::type instead of DataType::type (#1926) (by Taichi Gardener)
  • [example] Upgrade mass_spring_3d.py to Taichi THREE v0.0.5 (#1919) (by 彭于斌)
  • [async] [metal] Support async mode on Metal (#1920) (by Ye Kuang)
  • [type] [refactor] Promote DataType to a class (#1906) (by Yuanming Hu)
  • [async] Partial SFG node GC (keep latest state writers/readers) (#1915) (by xumingkuan)
  • [doc] Improve description of the pos parameter in gui (#1904) (by qbao0x3273)
taichi - v0.6.38

Published by yuanming-hu about 4 years ago

Highlights:

  • Examples
    • Fix rounding error for cornell_box.py (#1908) (by 蕉太狼)
  • Language and syntax
    • Add @ti.materialize_callback for functions to be called right after root materialization (#1912) (by 彭于斌)

Full changelog:

  • [doc] Guard values with "ti.approx" in "docs/write_test.rst" to allow FP-error tolerance (#1911) (by Tony)
  • [Lang] Add @ti.materialize_callback for functions to be called right after root materialization (#1912) (by 彭于斌)
  • [metal] Fix error message (#1916) (by Ye Kuang)
  • [async] Support SFG-level DSE for scalar SNodes (#1907) (by Ye Kuang)
  • [Example] Fix rounding error for cornell_box.py (#1908) (by 蕉太狼)
  • [async] Add advection benchmark (#1914) (by Yuanming Hu)
  • [example] Update mpm_lagrangian_forces.py (#1910) (by Yuanming Hu)
  • [doc] Use "atan2(y, x)" instead of "atan2(x, y)" (#1816) (#1903) (by Tony)
  • [metal] Add KernelManagerData in prep for pointer SNode (#1895) (by Ye Kuang)
  • [perf] Wrap clear loss/grad into a kernel (#1902) (by Ye Kuang)
taichi - v0.6.37

Published by yuanming-hu about 4 years ago

Highlights:

  • Intermediate representation
    • Support SHR operator: ti.bit_shr(x, y) (#1871) (by Xuanda Yang)
  • Miscellaneous
    • Automatic release pipeline: read semver from CMakeList directly (#1885) (by Chengchen(Rex) Wang)
  • Refactor
    • Move statements from ir.h to statements.h (#1898) (by xumingkuan)

Full changelog:

  • [bug] Fix stable fluid BFECC advection (#1764) (by Yadi Cao)
  • [Refactor] [ir] Move statements from ir.h to statements.h (#1898) (by xumingkuan)
  • [export] Support exporting custom config variables (#1893) (by 彭于斌)
  • [gui] [ipython] Add GUI.del to close on variable dereference (#1869) (by 彭于斌)
  • [misc] Make check previous CI run only check for Build-and-Test jobs (#1899) (by Ye Kuang)
  • [refactor] Move IRBank to a separate file (#1897) (by xumingkuan)
  • [refactor] Remove DFS in DOT generation (#1896) (by Ye Kuang)
  • [async] Optimize StateFlowGraph::optimize_listgen (#1894) (by Yuanming Hu)
  • [misc] Expose kernel statistics to python (#1891) (by Ye Kuang)
  • [async] Cache demote_activation (#1889) (by xumingkuan)
  • [async] Make optimization passes iterative (#1890) (by Ye Kuang)
  • [async] Remove ClearListStmt from possibly fused serial tasks (#1888) (by Ye Kuang)
  • [IR] [lang] Support SHR operator: ti.bit_shr(x, y) (#1871) (by Xuanda Yang)
  • [async] Classify tasks to make fusion 10.6x faster (#1887) (by xumingkuan)
  • [Misc] Automatic release pipeline: read semver from CMakeList directly (#1885) (by Chengchen(Rex) Wang)
  • [export] [cc] Support ti.RecordGroupHint to group launched kernels (#1880) (by 彭于斌)
  • [async] Add element-wise info into TaskMeta for fusion (#1884) (by xumingkuan)
taichi - v0.6.36

Published by yuanming-hu about 4 years ago

Highlights:

  • Examples
    • Add mciso.py and mciso_advanced.py for marching cube (#1835) (by 彭于斌)

Full changelog:

  • [cli] Setup pylint: run 'ti lint' to obtain linting results (#1846) (by 彭于斌)
  • [async] More SFG optimizations (#1877) (by Yuanming Hu)
  • [Example] Add mciso.py and mciso_advanced.py for marching cube (#1835) (by 彭于斌)
taichi - v0.6.35

Published by yuanming-hu about 4 years ago

Highlights:

  • Language and syntax
    • Support num_thread limitation and serial execution on CPU (#1867) (by Yuanming Hu)

Full changelog:

  • [refactor] Create class TypePromotionMapping for refactoring function promoted_type in lang_util.cpp (#1874) (by Jiafeng Liu)
  • [async] Draw nodes as record shape, allow embedding states into the nodes. (#1876) (by Ye Kuang)
  • [Lang] Support num_thread limitation and serial excution on CPU (#1867) (by Yuanming Hu)
  • [async] Cache fusion results (#1875) (by xumingkuan)
  • [Async] Fix ClearListStmt metadata (#1873) (by Yuanming Hu)
  • [async] Improve fusion optimization and add StateFlowGraph::verify (#1872) (by xumingkuan)
  • [async] Optimizations on StateFlowGraph (#1870) (by Yuanming Hu)
  • [async] Migrate AsyncEngine::fuse() to StateFlowGraph (#1859) (by xumingkuan)
  • [ir] Add ClearListStmt instead of making clear_list a unique task type (#1868) (by Ye Kuang)
  • [error] [doc] Better error message when X11 environment failed to initialize (#1856) (by 彭于斌)
  • [async] Highlight user kernels in the DOT graph, allows configuring rankdir (#1866) (by Ye Kuang)
taichi - v0.6.34

Published by yuanming-hu about 4 years ago

Highlights:

  • Examples
    • Make ODOP MGPCG class in mgpcg.py generic and reuse it in stable_fluid.py (#1731) (by 彭于斌)
  • Language and syntax
    • Support ti.zero(x) and ti.one(x) for making zero/one value for the same type with x (#1857) (by 彭于斌)
  • GitHub Actions/Workflows
    • Build and test the CUDA backend using GitHub actions (#1863) (by Yuanming Hu)

Full changelog:

  • [Workflow] Build and test the CUDA backend using GitHub actions (#1863) (by Yuanming Hu)
  • [async] Patch StateFlowGraph (#1862) (by Yuanming Hu)
  • [Example] Make ODOP MGPCG class in mgpcg.py generic and reuse it in stable_fluid.py (#1731) (by 彭于斌)
  • [Lang] Support ti.zero(x) and ti.one(x) for making zero/one value for the same type with x (#1857) (by 彭于斌)
taichi - v0.6.33

Published by yuanming-hu about 4 years ago

Highlights:

  • Error messages
    • Raise TaichiSyntaxError when multiple return path detected (#1844) (by 彭于斌)
  • Examples
    • Physarum simulation example (#1850) (by Alexander Mordvintsev)
  • Language and syntax
    • Support len and iter on ti.Matrix (#1838) (by 彭于斌)

Full changelog:

  • [async] Add TaskLaunchRecord StateFlowGraph::Node::rec (#1854) (by xumingkuan)
  • [Error] Raise TaichiSyntaxError when multiple return path detected (#1844) (by 彭于斌)
  • [async] Fix missing edges and nodes in SFG (#1853) (by Yuanming Hu)
  • [pypi] Remove setuptools from hard dependencies (#1845) (by 彭于斌)
  • [Example] Physarum simulation example (#1850) (by Alexander Mordvintsev)
  • [workflow] Update issue templates (#1794) (by 彭于斌)
  • [async] Generate DOT graph for StateFlowGraph (#1852) (by Ye Kuang)
  • [async] Implement IRBank and IRHandle (#1839) (by xumingkuan)
  • [misc] Fix check previous run by using GITHUB_TOKEN to authenticate APIs (#1849) (by Ye Kuang)
  • [cuda] Fix CUDA driver API signature (#1834) (by Yuanming Hu)
  • [async] Improve StateFlowGraph (#1843) (by Yuanming Hu)
  • [ir] Remove the usage of kernel from type_check() pass (#1848) (by Ye Kuang)
  • [misc] Check the previous Github workflow run status if CI is skipped (#1837) (by Ye Kuang)
  • [Lang] Support len and iter on ti.Matrix (#1838) (by 彭于斌)
taichi - v0.6.32

Published by yuanming-hu about 4 years ago

Highlights:

  • Documentation
    • Doc the workflow for exporting Taichi kernels to C99 source (#1756) (by 彭于斌)
    • Add performance.rst introducing the 'ti.block_dim' API (#1691) (by 彭于斌)
    • Add document for XYZW accessors of vector (#1797) (by 彭于斌)
  • GUI
    • Support saving image without GUI showing a window (#1817) (by thinking-tower)
  • Refactor
    • Refactor Block::parent from Block* to Stmt* (#1815) (by xumingkuan)

Full changelog:

  • [refactor] Use promise/future to retrieve the function compiled asynchronously (#1831) (by Ye Kuang)
  • [GUI] Support saving image without GUI showing a window (#1817) (by thinking-tower)
  • [ir] [bug] Fix demote_operations lacking type_check (#1825) (by 彭于斌)
  • [refactor] Rename KernelLaunchRecord to TaskLaunchRecord (#1828) (by Ye Kuang)
  • [Doc] [cc] Doc the workflow for exporting Taichi kernels to C99 source (#1756) (by 彭于斌)
  • [Doc] Add performance.rst introducing the 'ti.block_dim' API (#1691) (by 彭于斌)
  • [Doc] Add document for XYZW accessors of vector (#1797) (by 彭于斌)
  • [ir] [bug] Demote all local atomic operations, not only add (#1819) (by 彭于斌)
  • [doc] Document data structure organization (#995) (by Yuanming Hu)
  • [ir] [refactor] Reorder FrontAssertStatement's constructor args (#1822) (by Ye Kuang)
  • [Refactor] [ir] Refactor Block::parent from Block* to Stmt* (#1815) (by xumingkuan)
  • [refactor] Rename 'launched_kernels*' stats to 'launched_tasks*' (#1821) (by Ye Kuang)
taichi - v0.6.31

Published by yuanming-hu about 4 years ago

Highlights:

  • Bug fixes
    • Use sys.getfilesystemencoding() to prevent possible locale errors (#1775) (by 彭于斌)
  • C source backend
    • Support AdStack on C backend (#1752) (by 彭于斌)
  • Documentation
    • Add how to set environment variables for fish users (#1800) (by Luyu Cheng)
    • Separate arithmetics.rst from syntax.rst and fill it with more details (#1761) (by 彭于斌)
  • Examples
    • Fix stable_fluid.py boundary broken: int -> ti.floor, and make mpm3d.py 3x faster on CUDA (#1784) (by 彭于斌)
  • Language and syntax
    • Support formatted string with args in assert (#1806) (by Ye Kuang)
    • Support printing lists and tuples in Taichi-scope (#1796) (by 彭于斌)
    • Add ti.get_rel_eps() for maximal relative error tolerance on current backend (#1798) (by Ye Kuang)
    • Support querying external array shape by 'x.shape' (#1787) (by thinking-tower)
  • IR optimization passes
    • Make irpass::replace_all_usages_with bottom-up (#1789) (by xumingkuan)

Full changelog:

  • [misc] Remove unused code/comments in transforms/simpilfy.cpp (#1812) (by Yuanming Hu)
  • [ir] Fix irpass::analysis::clone on TLS/BLS prologue/epilogue (#1811) (by Yuanming Hu)
  • [error] "Better error message when vector used as if's condition variable (#1804)" (#1810) (by 彭于斌)
  • [Lang] Support formatted string with args in assert (#1806) (by Ye Kuang)
  • [refactor] Replace std::map with switch case statements in lang_util.cpp (#1755) (by Aryan Soman)
  • [misc] Revert "Better error message when vector used as if's condition variable (#1804)" (#1808) (by Yuanming Hu)
  • [error] Better error message when vector used as if's condition variable (#1804) (by 彭于斌)
  • [Opt] Make irpass::replace_all_usages_with bottom-up (#1789) (by xumingkuan)
  • [Doc] Add how to set environment variables for fish users (#1800) (by Luyu Cheng)
  • [CC] [autodiff] Support AdStack on C backend (#1752) (by 彭于斌)
  • [Lang] Support printing lists and tuples in Taichi-scope (#1796) (by 彭于斌)
  • [workflow] import missing package sys in code_format.py (#1802) (by Luyu Cheng)
  • [cli] Add path to Python executable to 'ti diagnose' (#1801) (by Luyu Cheng)
  • [refactor] Remove the singleton Program::context (#1799) (by Ye Kuang)
  • [ir] Restore verification for OffloadedStmt (#1790) (by xumingkuan)
  • [Lang] [test] Add ti.get_rel_eps() for maximal relative error tolerance on current backend (#1798) (by Ye Kuang)
  • [Lang] [ir] Support querying external array shape by 'x.shape' (#1787) (by thinking-tower)
  • [workflow] Travis CI only test Python 3.6 unless release tag is used (#1793) (by 彭于斌)
  • [refactor] Move Context to taichi/program (#1788) (by Ye Kuang)
  • [doc] Better clarify the difference between two profilers (#1759) (by 彭于斌)
  • [ir] [autodiff] Initialize ADStack with a zero (#1791) (by Yuanming Hu)
  • [ir] [opt] Unify ifloordiv implementation over backends in demote_operations (#1771) (by 彭于斌)
  • [Bug] [misc] Use sys.getfilesystemencoding() to prevent possible locale errors (#1775) (by 彭于斌)
  • [Example] Fix stable_fluid.py boundary broken: int -> ti.floor, and make mpm3d.py 3x faster on CUDA (#1784) (by 彭于斌)
  • [test] Expand the tolerance for testing on metal backend (#1779) (by Xudong Feng)
  • [opt] Simplify identical load elimination (#1782) (by xumingkuan)
  • [error] [opengl] Better error message when int64 or sparse SNode not supported for OpenGL (#1783) (by 彭于斌)
  • [Doc] Separate arithmetics.rst from syntax.rst and fill it with more details (#1761) (by 彭于斌)
  • [ipython] Separate {Expr,Matrix}.{str,repr} to prevent unexpected materialization when repr (#1766) (by 彭于斌)
  • [async] Support constant folding in async mode (#1778) (by Ye Kuang)
  • [workflow] [cli] Improve coverage of 'ti format' and 'ti format_all' (#1768) (by 彭于斌)
  • [misc] Add "make_block_local" option to "CompileConfig" (#1727) (by Yuanming Hu)
taichi - v0.6.30

Published by yuanming-hu about 4 years ago

Highlights:

  • Command line interface
    • Add 'ti repl' command for Taichi REPL shell (#1765) (by 彭于斌)
  • GUI
    • Support gui.arrow_field() and gui.point_field() for small resolution vector / scalar field visualization (#1763) (by 彭于斌)
  • Intermediate representation
    • Support SAR operator: x >> y (#1772) (by Hanke Liu)
    • Support SHL operator: x << y (#1762) (by Xuanda Yang)
  • Refactor
    • @ti.classfunc and @ti.classkernel are obsolete. Directly use @ti.func and @ti.kernel instead (#1770) (by 彭于斌)
    • 'ti.var' is deprecated, use 'ti.field' instead (#1767) (by 彭于斌)

Full changelog:

  • [CLI] [doc] Add 'ti repl' command for Taichi REPL shell (#1765) (by 彭于斌)
  • [IR] [lang] Support SAR operator: x >> y (#1772) (by Hanke Liu)
  • [async] [benchmark] Enable optimization for global variables after fusion (#1776) (by xumingkuan)
  • [benchmark] [async] Improve AsyncEngine benchmarks (#1774) (by Yuanming Hu)
  • [GUI] Support gui.arrow_field() and gui.point_field() for small resolution vector / scalar field visualization (#1763) (by 彭于斌)
  • [Refactor] @ti.classfunc and @ti.classkernel are obsolete. Directly use @ti.func and @ti.kernel instead (#1770) (by 彭于斌)
  • [IR] [lang] Support SHL operator: x << y (#1762) (by Xuanda Yang)
  • [Refactor] 'ti.var' is deprecated, use 'ti.field' instead (#1767) (by 彭于斌)
  • [benchmark] [async] Improve AsyncEngine benchmarks (#1758) (by Yuanming Hu)
  • [misc] Fix a typo in README.md (#1760) (by fq)
  • [benchmark] [async] Add ti.benchmark_plot and add fuse_dense.py to benchmarks (#1754) (by xumingkuan)
taichi - v0.6.29

Published by yuanming-hu about 4 years ago

Highlights:

  • Error messages
    • Attach a traceback to ti.field when 'Some variable(s) are not placed' (#1734) (by 彭于斌)
  • Examples
    • Upgrade mass_spring_3d.py to Taichi THREE v0.0.3 API (#1732) (by 彭于斌)
  • GUI
    • Add handy ti.imscale(img, w, h) for scaling image (#1735) (by 彭于斌)
  • IR optimization passes
    • Identical store/load elimination by control-flow graph (#1741) (by xumingkuan)

Full changelog:

  • [GUI] Add handy ti.imscale(img, w, h) for scaling image (#1735) (by 彭于斌)
  • [benchmark] [async] Add more statistics for async benchmark (#1747) (by xumingkuan)
  • [misc] Fix OffloadedStmt cloning (#1745) (by Yuanming Hu)
  • [refactor] Use condition variable instead of sleep in ParallelExecutor (#1743) (by Ye Kuang)
  • [cc] [refactor] C backend use result_buffer for return value too (#1736) (by 彭于斌)
  • [Error] Attach a traceback to ti.field when 'Some variable(s) are not placed' (#1734) (by 彭于斌)
  • [benchmark] Dump the benchmark data into one yaml file (#1744) (by xumingkuan)
  • [benchmark] Upgrade "benchmarks" to new syntax (#1729) (by Xudong Feng)
  • [misc] Upgrade "misc" to the new syntax (#1730) (by Xudong Feng)
  • [misc] Create misc/examples.md for more examples (#1726) (by Yuanming Hu)
  • [opt] Add irpass::analysis::same_value (#1742) (by xumingkuan)
  • [Opt] Identical store/load elimination by control-flow graph (#1741) (by xumingkuan)
  • [example] Upgrade pbf2d.py to new syntax (#1710) (by 彭于斌)
  • [Example] Upgrade mass_spring_3d.py to Taichi THREE v0.0.3 API (#1732) (by 彭于斌)
taichi - v0.6.28

Published by yuanming-hu about 4 years ago

Highlights:

  • Documentation
    • Add API reference for external array interactions (#1677) (by 彭于斌)
  • Language and syntax
    • Support printing scalar fields in Python-scope (#1701) (by 彭于斌)

Full changelog:

  • [cuda] Refactor CUDA kernel launching (#1738) (by Yuanming Hu)
  • [blender] [example] Fix examples/waterwave.py memory leakage in Blender (#1733) (by 彭于斌)
  • [refactor] Add Kernel::LaunchContextBuilder skeleton code (#1723) (by Ye Kuang)
  • [opengl] [refactor] Use result_buffer for return value since @k-ye insist to (#1724) (by 彭于斌)
  • [Lang] Support printing scalar fields in Python-scope (#1701) (by 彭于斌)
  • [misc] Reformat all the files and rename "type_check" & "lower_ast" (#1728) (by Taichi Gardener)
  • [misc] Rename "fully_deprecated" to "obsolete" (#1725) (by Yuanming Hu)
  • [misc] [refactor] Replace the word tensor by field in comments and error messages (#1721) (by 彭于斌)
  • [opengl] Cache GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS value to prevent glGetInteger per-launch (#1718) (by 彭于斌)
  • [example] [refactor] Replace global field ti.Vector -> ti.Vector.field in examples (#1716) (by Xudong Feng)
  • [pypi] Upgrade sourceinspect to 0.0.3 for hot fixes (#1717) (by 彭于斌)
  • [example] Make jacobi iteration 2x faster in stable_fluid.py (#1713) (by 彭于斌)
  • [example] [refactor] Replace all ti.var->ti.field in our examples (#1712) (by Xudong Feng)
  • [metal] Pass back return values via result_buffer (#1709) (by Ye Kuang)
  • [refactor] Fix missed ti.var -> ti.field refactors in codebase (#1705) (by 彭于斌)
  • [Doc] Add API reference for external array interactions (#1677) (by 彭于斌)
  • [cli] [workflow] Support "\r\n" -> "\n" convert in "ti format" command (#1706) (by 彭于斌)
taichi - v0.6.27

Published by yuanming-hu about 4 years ago

Highlights:

  • C source backend
    • Release the C backend (#1707) (by 彭于斌)
  • Documentation
    • Typo and grammatical fixes in vector documentation (#1695) (by Aryan Soman)
  • Sparse computation
    • Support memory profiling for LLVM backends (#1655) (by Yuanming Hu)

Full changelog:

  • [mac] Add NSAutoreleasePool to manage obj-c objects' lifetime (#1704) (by Ye Kuang)
  • [CC] Release the C backend (#1707) (by 彭于斌)
  • [test] [refactor] Replace ti.Vector or ti.Vector.var -> ti.Vector.field (#1698) (by Xudong Feng)
  • [example] [misc] Add 'ti.taichi_logo' function & misc typo fix (#1640) (by 彭于斌)
  • [metal] Log errors if the compute kernel compilation failed (#1697) (by Ye Kuang)
  • [test] Fix Torch IO test (#1700) (by Yuanming Hu)
  • [misc] Update README.md gallery for the newly added examples during GAMES 201 (#1652) (by 彭于斌)
  • [test] [refactor] Replace global field ti.Matrix or ti.Matrix.var -> ti.Matrix.field in python tests (#1694) (by Xudong Feng)
  • [Doc] Typo and grammatical fixes in vector documentation (#1695) (by Aryan Soman)
  • [example] [refactor] Upgrade to ti.field syntax for many examples (#1669) (by 彭于斌)
  • [test] Replace ti.var by ti.field in tests starting with r-z (#1684) (by Xudong Feng)
  • [async] [cuda] AsyncEngine now supports CUDA (#1687) (by Yuanming Hu)
  • [Sparse] [llvm] Support memory profiling for LLVM backends (#1655) (by Yuanming Hu)
taichi - v0.6.26

Published by yuanming-hu about 4 years ago

Highlights:

  • Documentation
    • Improve Taichi kernels and functions definition (#1576) (by 彭于斌)
  • Examples
    • Add mpm3d.py for dimension-independent MPM method (#1639) (by 彭于斌)
  • IPython and other shells
    • Use 'sourceinspect' to support Blender scripting module and IDLE shell (#1664) (by 彭于斌)

Full changelog:

  • [Example] Add mpm3d.py for dimension-independent MPM method (#1639) (by 彭于斌)
  • [misc] Prevent 'supported_archs()' invocation in 'adaptive_arch_select()' for better compatibility (#1666) (by 彭于斌)
  • [test] Replace ti.var by ti.field in tests starting with h-q (#1683) (by Xudong Feng)
  • [test] Replace ti.var by ti.field in tests starting with a-g (#1681) (by Xudong Feng)
  • Turn on the CC backend in the Dockerfile (#1680) (by samuela)
  • [llvm] Obsolete LLVM 8 support (#1685) (by Yuanming Hu)
  • [Doc] [refactor] Improve Taichi kernels and functions definition (#1576) (by 彭于斌)
  • [cli] Add 'ti diagnose' command for providing system informations (#1671) (by 彭于斌)
  • [cc] Add ti.cfg.cc_compile_cmd and ti.cfg.cc_link_cmd (#1645) (by 彭于斌)
  • [IPython] Use 'sourceinspect' to support Blender scripting module and IDLE shell (#1664) (by 彭于斌)
  • [misc] Add links to the mirror repo in Gitee (#1665) (by 彭于斌)
  • [misc] Update doc version (#1672) (by Yuanming Hu)
  • [misc] [refactor] Add fully_deprecated mark for future use (#1656) (by 彭于斌)
  • [doc] Fix uncovered while deprecated term 'tensor' occurance (#1653) (by 彭于斌)
taichi - v0.6.25

Published by yuanming-hu about 4 years ago

Highlights:

  • Bug fixes
    • Fix random side-effect causing SSA violation in ti.Vector (#1631) (by 彭于斌)
  • Documentation
    • Replace fields of xxx by xxx field (#1599) (by Xudong Feng)
    • Replace "tensor" by "field" in documentation (#1633) (by Xudong Feng)
    • Improve type.rst readability (#1618) (by 彭于斌)
  • Examples
    • Add cg_possion.py, a Poisson solver based on conjugate gradients (#1595) (by 彭于斌)
    • Enhance stable_fluid.py with BFECC, RK2, RK3 and Taichi's new syntax (#1617) (by 彭于斌)
  • GUI
    • Support gui.fps_limit and reduce idle power consumption (#1611) (by 彭于斌)
    • Support images with 2 channels (RG) in GUI.set_image (#1624) (by 彭于斌)
    • Support gui.arrow() and gui.arrows() (#1625) (by 彭于斌)
  • Language and syntax
    • Support float and int as aliases for default-precision data types (#1585) (by 彭于斌)
  • Miscellaneous
    • Catch RuntimeError when detecting backends for better compatibility (#1647) (by 彭于斌)
  • IR optimization passes
    • Improve aliasing analysis for SNodes with trailing bits (#1657) (by xumingkuan)
    • Improve the binary ops simplify pass (#1646) (by xumingkuan)
  • Refactor
    • "x.snode()" is deprecated, use "x.snode" instead (#1654) (by 彭于斌)

Full changelog:

  • [bug] [sparse] Fix struct-fors on pointer SNodes (#1662) (by Yuanming Hu)
  • [misc] [linux] Further improve misc/linker.map to prevent Blender segementation fault (#1661) (by 彭于斌)
  • [doc] Re-update documentation on autodiff (#1623) (by 彭于斌)
  • [Opt] Improve aliasing analysis for SNodes with trailing bits (#1657) (by xumingkuan)
  • bgcolor -> background_color in GUI docs (#1660) (by samuela)
  • [Misc] [bug] Catch RuntimeError when detecting backends for better compatibility (#1647) (by 彭于斌)
  • [workflow] Add Mac OS X to Github CI (#1649) (by 彭于斌)
  • [Example] Add cg_possion.py, a Poisson solver based on conjugate gradients (#1595) (by 彭于斌)
  • [Refactor] "x.snode()" is deprecated, use "x.snode" instead (#1654) (by 彭于斌)
  • [GUI] Support gui.fps_limit and reduce idle power consumption (#1611) (by 彭于斌)
  • [GUI] Support images with 2 channels (RG) in GUI.set_image (#1624) (by 彭于斌)
  • [Opt] Improve the binary ops simplify pass (#1646) (by xumingkuan)
  • [benchmark] Fix test_test.py benchmark including '' in filename (#1650) (by 彭于斌)
  • [cc] [workflow] Add C backend to Github CI (#1643) (by 彭于斌)
  • [Doc] Replace fields of xxx by xxx field (#1599) (by Xudong Feng)
  • [cc] Compose ActionRecorder outputs into a single C file for Emscripten (#1629) (by 彭于斌)
  • [error] Better error messages when using wrong type annotations (#1612) (by 彭于斌)
  • [doc] Update instructions for using Stop Motion OBJ with PLY sequences (#1638) (by Justin)
  • [Doc] Replace "tensor" by "field" in documentation (#1633) (by Xudong Feng)
  • [doc] Fix typo in faq.rst (#1636) (by Danni)
  • Fix hyperlink in faq.rst (#1637) (by Danni)
  • [Example] Enhance stable_fluid.py with BFECC, RK2, RK3 and Taichi's new syntax (#1617) (by 彭于斌)
  • [GUI] Support gui.arrow() and gui.arrows() (#1625) (by 彭于斌)
  • [Lang] Support float and int as aliases for default-precision data types (#1585) (by 彭于斌)
  • [Bug] Fix random side-effect causing SSA violation in ti.Vector (#1631) (by 彭于斌)
  • [infra] Support GCC as compiler for Taichi developers (experimental) (#1598) (by 彭于斌)
  • [Doc] Improve type.rst readability (#1618) (by 彭于斌)
  • [gui] [bug] Fix hex_to_rgb (#1630) (by Yuanming Hu)
  • [async] Clone offloaded tasks lazily by maintaining a cached template task (#1619) (by Ye Kuang)