Skip to content

Metal : writing to a field with 3 or less ti.i8 elements causes overwrites #8770

@Mirebeau

Description

@Mirebeau

Describe the bug

Writing to a field with 3 or less ti.i8 elements leads to overwrites on other fields.

To Reproduce

Log/Screenshots

$ python BugFieldMetal.py
[Taichi] version 1.7.4, llvm 15.0.7, commit b4b956fd, osx, python 3.13.7
[Taichi] Starting on arch=metal
[W 11/03/25 18:59:07.458 17818148] TaichiWarning
While compiling `ext_arr_to_tensor_c20_0`, File "/Users/jean-mariemirebeau/opt/miniconda3/envs/agdt_313/lib/python3.13/site-packages/taichi/_kernels.py", line 146, in ext_arr_to_tensor:
        tensor[I] = arr[I - offset]
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Assign may lose precision: i32 <- i64
a = [1 2 3] , b =  [1 0 0]
[W 11/03/25 18:59:07.493 17818148] TaichiWarning
While compiling `set_b_c80_0`, File "/Users/jean-mariemirebeau/Dropbox/Programmes/GithubM1/AGDT/AGDT_NotebooksDev/Notebooks_Algo/InPreparation_Scripts/BugFieldMetal.py", line 11, in set_b:
def set_b(): b[1] = -1
             ^^^^^^^^^
Assign may lose precision: i8 <- i32
a = [65281     2     3] , b =  [ 1 -1  0]

Additional comments

ti diagnose
[Taichi] version 1.7.4, llvm 15.0.7, commit b4b956f, osx, python 3.13.7


** Taichi Programming Language **


Docs: https://docs.taichi-lang.org/
GitHub: https://github.com/taichi-dev/taichi/
Forum: https://forum.taichi.graphics/

Taichi system diagnose:

python: 3.13.7 | packaged by conda-forge | (main, Sep 3 2025, 14:24:46) [Clang 19.1.7 ]
system: darwin
executable: /Users/jean-mariemirebeau/opt/miniconda3/envs/agdt_313/bin/python3.13
platform: macOS-15.6.1-arm64-arm-64bit-Mach-O
architecture: 64bit Mach-O
uname: uname_result(system='Darwin', node='MacBook-Pro-de-Jean-Marie.local', release='24.6.0', version='Darwin Kernel Version 24.6.0: Mon Jul 14 11:30:29 PDT 2025; root:xnu-11417.140.69~1/RELEASE_ARM64_T6000', machine='arm64')
/Users/jean-mariemirebeau/opt/miniconda3/envs/agdt_313/lib/python3.13/site-packages/taichi/tools/diagnose.py:20: DeprecationWarning: 'locale.getdefaultlocale' is deprecated and slated for removal in Python 3.15. Use setlocale(), getencoding() and getlocale() instead.
print(f'locale: {".".join(locale.getdefaultlocale())}')
locale: en_US.UTF-8
PATH: /Users/jean-mariemirebeau/opt/miniconda3/envs/agdt_313/bin:/Users/jean-mariemirebeau/opt/miniconda3/condabin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin:/usr/local/MacGPG2/bin:/Library/TeX/texbin:/Users/jean-mariemirebeau/.vscode/extensions/ms-python.debugpy-2025.14.1-darwin-arm64/bundled/scripts/noConfigScripts
PYTHONPATH: ['/Users/jean-mariemirebeau/opt/miniconda3/envs/agdt_313/bin', '/Users/jean-mariemirebeau/opt/miniconda3/envs/agdt_313/lib/python313.zip', '/Users/jean-mariemirebeau/opt/miniconda3/envs/agdt_313/lib/python3.13', '/Users/jean-mariemirebeau/opt/miniconda3/envs/agdt_313/lib/python3.13/lib-dynload', '/Users/jean-mariemirebeau/opt/miniconda3/envs/agdt_313/lib/python3.13/site-packages']

lsb_release not available: [Errno 2] No such file or directory: 'lsb_release'

import: <module 'taichi' from '/Users/jean-mariemirebeau/opt/miniconda3/envs/agdt_313/lib/python3.13/site-packages/taichi/init.py'>

cpu: True
metal: True
opengl: False
cuda: False
vulkan: True

glewinfo not available: [Errno 2] No such file or directory: 'glewinfo'

nvidia-smi not available: [Errno 2] No such file or directory: 'nvidia-smi'
[Taichi] version 1.7.4, llvm 15.0.7, commit b4b956f, osx, python 3.13.7

[Taichi] version 1.7.4, llvm 15.0.7, commit b4b956f, osx, python 3.13.7
[Taichi] Starting on arch=arm64

[W 11/03/25 19:04:15.128 17823841] [misc.py:adaptive_arch_select@758] Arch=[<Arch.opengl: 5>] is not supported, falling back to CPU
[Taichi] version 1.7.4, llvm 15.0.7, commit b4b956f, osx, python 3.13.7
[Taichi] Starting on arch=arm64

[W 11/03/25 19:04:15.408 17823880] [misc.py:adaptive_arch_select@758] Arch=[<Arch.cuda: 3>] is not supported, falling back to CPU
[Taichi] version 1.7.4, llvm 15.0.7, commit b4b956f, osx, python 3.13.7
[Taichi] Starting on arch=arm64

[Taichi] version 1.7.4, llvm 15.0.7, commit b4b956f, osx, python 3.13.7


** Taichi Programming Language **


Docs: https://docs.taichi-lang.org/
GitHub: https://github.com/taichi-dev/taichi/
Forum: https://forum.taichi.graphics/

                               TAICHI EXAMPLES                                    

────────────────────────────────────────────────────────────────────────────────────
0: ad_gravity 25: karman_vortex_street 50: patterns
1: circle_packing_image 26: keyboard 51: pbf2d
2: comet 27: laplace 52: physarum
3: cornell_box 28: laplace_equation 53: poisson_disk_sampling
4: diff_sph 29: mandelbrot_zoom 54: print_offset
5: differential_evolution 30: marching_squares 55: rasterizer
6: euler 31: mass_spring_3d_ggui 56: regression
7: eulerfluid2d 32: mass_spring_game 57: sdf_renderer
8: explicit_activation 33: mass_spring_game_ggui 58: simple_derivative
9: export_mesh 34: mciso_advanced 59: simple_texture
10: export_ply 35: mgpcg 60: simple_uv
11: export_videos 36: mgpcg_advanced 61: snow_phaseField
12: fem128 37: minimal 62: stable_fluid
13: fem128_ggui 38: minimization 63: stable_fluid_ggui
14: fem99 39: mpm128 64: stable_fluid_graph
15: fractal 40: mpm128_ggui 65: taichi_bitmasked
16: fractal3d_ggui 41: mpm3d 66: taichi_dynamic
17: fullscreen 42: mpm3d_ggui 67: taichi_logo
18: game_of_life 43: mpm88 68: taichi_ngp
19: gui_image_io 44: mpm88_graph 69: taichi_sparse
20: gui_widgets 45: mpm99 70: texture_graph
21: implicit_fem 46: mpm_lagrangian_forces 71: tutorial
22: implicit_mass_spring 47: nbody 72: two_stream_instability
23: initial_value_problem 48: odop_solar 73: vortex_rings
24: jacobian 49: oit_renderer 74: waterwave
────────────────────────────────────────────────────────────────────────────────────
42
Running example minimal ...
[Taichi] Starting on arch=arm64
42.0

Running time: 0.12s

Consider attaching this log when maintainers ask about system information.

Running time: 2.99s

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Untriaged

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions