Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync #14

Merged
merged 63 commits into from
Jan 10, 2023
Merged

Sync #14

merged 63 commits into from
Jan 10, 2023

Conversation

galeselee
Copy link
Owner

Issue: #

Brief Summary

jim19930609 and others added 30 commits January 2, 2023 06:51
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This PR removes the `packed` option in `ti.init` according to the
changes in v1.4.0.
This reverts commit a1485cd.

Issue: #

### Brief Summary
Issue: #3013

### Brief Summary

Implementing colored texts:
```py
window = ti.ui.Window('Window', (768, 768),
                        vsync=True)
canvas = window.get_canvas()
gui = window.get_gui()
while window.running:
    with gui.sub_window("Yo", 0.05, 0.05, 0.9, 0.2) as w:
        w.text("haha", (1.0,0.2,0.3))
    window.show()
```
<img width="767" alt="Screenshot 2023-01-03 at 20 07 11"
src="https://user-images.githubusercontent.com/16066115/210433302-e58fbc41-5331-4904-ae10-65f60e0b3446.png">

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Issue: #

### Brief Summary
#7026 did not land correctly, this PR merges it to the master
ghstack-source-id: 1b51cc93942b0401574272d5a7acafb1740f90d4
Pull Request resolved: #7026

Issue: #7026

### Brief Summary
Issue: #6832

### Brief Summary

Compute-only CommandList APIs other than dispatch has been changed to
use `noexcept`, and the behavior specifications has been added, and
relevant checks are now in place for Vulkan and partially for DX11.

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Issue: #2590

### Brief Summary

Under pure `dynamic_index` setting, `MatrixPtrStmt`s are not scalarized.
It actually produces `2n` more instructions (`n` `ConstStmt`s and n
`MatrixPtrStmt`s) than the scalarized setting, where `n` is the number
of usages of `MatrixPtrStmt`s. This PR adds `ExtractPointers` pass to
eliminate all the redundant instructions. See comments in the code for
details.

After this PR, the number of instructions after the `scalarize()` pass
of the script in #6933 under dynamic index reduces from 49589 to 26581,
and the compilation time reduces from 20.02s to 7.82s.

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
…hon to Frontend IR (#6942)

Issue: #5819

### Brief Summary
For indices of TensorType, instead of scalarizing them at Python level,
it is up to the Frontend IR's consumer to decide whether TensorType'd
indices are acceptable and if we should have it scalarized.

This PR removes `expand_expr` in Expression subscription and migrate the
scalarization logics to the following constructors:

1. MeshIndexConversionExpression::MeshIndexConversionExpression
2. IndexExpression::IndexExpression
Issue: #5858

### Brief Summary

This PR introduces a versioning mechanism to the Taichi Runtime C-API.
Taichi Runtime has the same version as the Python frontend. The version
information can be queried from taichi header definition
`TI_C_API_VERSION`, C-API `ti_get_version`, `__version__` in compiled
AOT module, and log output when `ti_create_runtime` is called.

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Issue: #6832

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Issue: #2590

### Brief Summary

Previously `ScalarizePointers` (which is for allocas) takes place only
when `dynamic_index=False`. In this PR, we automatically identify those
allocas only indexed with constants and get them scalarized, and let the
remaining allocas go through the code path for dynamic indexing. In this
way, we make old user programs behave the same regardless of the
`dynamic_index` option, and provide dynamic indexing support for new
user programs at the same time.

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Lin Jiang <[email protected]>
neozhaoliang and others added 26 commits January 6, 2023 16:05
Issue: #6999

GGUI's `circles` method does not allow passing NumPy array as radius;
this PR fixes this error.
Issue: #6832

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Issue: #

### Brief Summary
Since we have made `matrix` and `vector` to be different types in
v1.4.0, the documentation needs to be updated.
This PR updates the `ti gallery` UI. Must be merged after the gallery
image is updated in the assets repo:
taichi-dev/taichi_assets#4

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
ghstack-source-id: 7ccf3062f461ad642aa03b61879060b86e37df18
Pull Request resolved: #7027
ghstack-source-id: c7345fbae605793d13fd4c358e65ab20815c9155
Pull Request resolved: #7059
Issue: ##6434

### Brief Summary
These unit tests are for #6486

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Issue: ##6434

### Brief Summary
1. Add exclusive way to process kernel argument.
2. Upate `launch` api in `AMDGPUContext` .

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
…on code to Frontend IR (#6968)

Issue: #5819

### Brief Summary
Issue: fix #6978

### Brief Summary

After #7068, The `taichi_ngp` example reports `RuntimeError:
[type_factory.cpp:promoted_type@222] Assertion failure:
a->is<TensorType>() && b->is<TensorType>()`. The root cause is that
`taichi_ngp` uses `atomic_sub` on a value with type different from the
destination, which will generate `neg` + `cast`. However, the `ret_type`
and `cast_type` of `UnaryOpStmt` produced by `Scalarize` aren't set
correctly. This PR fixes the problem.
This PR removes the warning message of th example `snow_phaseField`
caused by closing the GUI.
This PR removes the deprecation warning message for the `sourceinspect`
dependency.

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Issue: #

### Brief Summary

Sometimes we can see `filename too long` errors in `actions/checkout`
step, with the added `core.longpaths=true` we can (hopefully) solve
this.

Still didn't figure out the exact reason why checked-out repos go
corrupt, but this seems a reasonable candidate.


![2023-01-09-151745_1951x428_scrot](https://user-images.githubusercontent.com/857880/211257397-2447a941-84ce-4e3c-87c5-0efdc4ec40d8.png)
I found this while using ti.math.sign(), the description confused me
>x = ti.Vector([-1.0, 0.0, 1.0])
ti.sign(x)
[0.8, 0.3, 0.3, 0.2]

then found more wrong information in mathimpl.py, there exists three
writting styles, and I've unified them.
### Brief Summary

`ti.Matrix.rotation2d()` should be removed according to the [deprecation
notice](https://github.com/taichi-dev/taichi/releases/tag/v1.3.0).

Related change: taichi-dev/taichi-aot-demo#107
This PR is a pretty huge one:
1. Metal runtime is now written in Objective-C++ instead of wrapped C++.
2. The Metal backend is now driven by `GfxRuntime`. `MetalRuntime` has
been removed entirely.
3. The Metal backend is now consuming artifacts from the SPIR-V codegen.
SPIRV-Cross is linked to enable translation from SPIR-V to plain text
MSL. The Metal codegen has been removed entirely.
4. The runtime C-API now supports Metal. Yay!
5. Adapted tests to be like other gfx archs. Removed sparse taichi
extensions.

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Issue: #7002

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
)

Issue: #6572 

* Fix using dtype for symbolic args in AOT usages
* Cleanup all the usages of `field_dim` and `element_shape` in examples and tests
Issue: #6434

### Brief Summary
This part contains `CHI IR->LLVM IR` part. Similar to part0, the
skeleton of this part is similar to `cuda`. Some important notes are
following.
1. `ocml` is the math library like 'libdevice' in `nvidia`. It provides
most of the functions we need. Remains such as `sgn`, and `abs` have
been completed by hand codes
2. The kernel parameter passing part is different from the `CUDA`.
`extra_args` is the only way that could be accepted by `device kernel.`
3. still uses jargon from `nvidia`.(e.g. `sm`, `block` and `grid`)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
@galeselee galeselee merged commit b4d8ad3 into galeselee:amdgpu_jit Jan 10, 2023
galeselee pushed a commit that referenced this pull request Jan 16, 2023
Related Issue: taichi-dev#7140 

### Brief Summary

On macOS, when test worker hard fails (abort, EXC_BAD_ACCESS, etc.),
backward_cpp's signal handler will re-raise the signal and catch it
afterwards, make it an infinite loop, at the moment the offending
process can't be terminated easily (except a SIGKILL), eat CPU cycles
and blocks test runner.

```
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
  * frame #0: 0x00000001a04f0e28 libsystem_kernel.dylib`__pthread_kill + 8
    frame #1: 0x00000001a052343c libsystem_pthread.dylib`pthread_kill + 292
    frame #2: 0x00000001a0402e10 libsystem_c.dylib`raise + 32
    frame #3: 0x00000001283a0848 taichi_python.cpython-38-darwin.so`backward::SignalHandling::sig_handler(int, __siginfo*, void*) + 28
    frame #4: 0x00000001a056ec44 libsystem_platform.dylib`_sigtramp + 56
    frame #5: 0x00000001a052343c libsystem_pthread.dylib`pthread_kill + 292
    frame #6: 0x00000001a0402e10 libsystem_c.dylib`raise + 32
    frame #7: 0x00000001283a0848 taichi_python.cpython-38-darwin.so`backward::SignalHandling::sig_handler(int, __siginfo*, void*) + 28
    frame #8: 0x00000001a056ec44 libsystem_platform.dylib`_sigtramp + 56
    frame #9: 0x00000001a052343c libsystem_pthread.dylib`pthread_kill + 292
    frame #10: 0x00000001a0402e10 libsystem_c.dylib`raise + 32
    frame #11: 0x00000001283a0848 taichi_python.cpython-38-darwin.so`backward::SignalHandling::sig_handler(int, __siginfo*, void*) + 28
    frame #12: 0x00000001a056ec44 libsystem_platform.dylib`_sigtramp + 56
    frame #13: 0x00000001a052343c libsystem_pthread.dylib`pthread_kill + 292
    frame #14: 0x00000001a0402e10 libsystem_c.dylib`raise + 32
    frame #15: 0x00000001283a0848 taichi_python.cpython-38-darwin.so`backward::SignalHandling::sig_handler(int, __siginfo*, void*) + 28
    frame #16: 0x00000001a056ec44 libsystem_platform.dylib`_sigtramp + 56
    frame #17: 0x00000001a052343c libsystem_pthread.dylib`pthread_kill + 292
    frame taichi-dev#18: 0x00000001a0402e10 libsystem_c.dylib`raise + 32
    frame taichi-dev#19: 0x00000001283a0848 taichi_python.cpython-38-darwin.so`backward::SignalHandling::sig_handler(int, __siginfo*, void*) + 28
    frame taichi-dev#20: 0x00000001a056ec44 libsystem_platform.dylib`_sigtramp + 56
    frame taichi-dev#21: 0x00000001a052343c libsystem_pthread.dylib`pthread_kill + 292
    frame taichi-dev#22: 0x00000001a0402e10 libsystem_c.dylib`raise + 32
    frame taichi-dev#23: 0x00000001283a0848 taichi_python.cpython-38-darwin.so`backward::SignalHandling::sig_handler(int, __siginfo*, void*) + 28
    frame taichi-dev#24: 0x00000001a056ec44 libsystem_platform.dylib`_sigtramp + 56
    frame taichi-dev#25: 0x00000001a052343c libsystem_pthread.dylib`pthread_kill + 292
    frame taichi-dev#26: 0x00000001a0402e10 libsystem_c.dylib`raise + 32
    frame taichi-dev#27: 0x00000001283a0848 taichi_python.cpython-38-darwin.so`backward::SignalHandling::sig_handler(int, __siginfo*, void*) + 28
    frame taichi-dev#28: 0x00000001a056ec44 libsystem_platform.dylib`_sigtramp + 56
    frame taichi-dev#29: 0x00000001a052343c libsystem_pthread.dylib`pthread_kill + 292
    frame taichi-dev#30: 0x00000001a0402e10 libsystem_c.dylib`raise + 32
    frame taichi-dev#31: 0x00000001a056ec44 libsystem_platform.dylib`_sigtramp + 56
    frame taichi-dev#32: 0x00000001a052343c libsystem_pthread.dylib`pthread_kill + 292
    frame taichi-dev#33: 0x00000001a046b454 libsystem_c.dylib`abort + 124
    frame taichi-dev#34: 0x0000000100194fc0 python`os_abort + 12
    frame taichi-dev#35: 0x00000001000758a8 python`cfunction_vectorcall_NOARGS + 324
    frame taichi-dev#36: 0x00000001001140f0 python`call_function + 460
    frame taichi-dev#37: 0x000000010011086c python`_PyEval_EvalFrameDefault + 27176
    frame taichi-dev#38: 0x00000001000287e4 python`function_code_fastcall + 128
    frame taichi-dev#39: 0x0000000100028008 python`PyVectorcall_Call + 120
    frame taichi-dev#40: 0x0000000100110b20 python`_PyEval_EvalFrameDefault + 27868
    frame taichi-dev#41: 0x000000010010982c python`_PyEval_EvalCodeWithName + 3008
    frame taichi-dev#42: 0x0000000100028948 python`_PyFunction_Vectorcall + 208
    frame taichi-dev#43: 0x0000000100028008 python`PyVectorcall_Call + 120
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.