gstaichi 0.1.25.dev0__cp312-cp312-macosx_15_0_arm64.whl → 2.0.0__cp312-cp312-macosx_15_0_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gstaichi/CHANGELOG.md +6 -0
- gstaichi/__init__.py +1 -1
- gstaichi/_lib/core/gstaichi_python.cpython-312-darwin.so +0 -0
- gstaichi/_lib/core/gstaichi_python.pyi +11 -41
- gstaichi/_test_tools/__init__.py +18 -0
- gstaichi/_test_tools/dataclass_test_tools.py +36 -0
- gstaichi/_test_tools/textwrap2.py +6 -0
- gstaichi/_version.py +1 -1
- gstaichi/examples/minimal.py +1 -1
- gstaichi/lang/__init__.py +1 -1
- gstaichi/lang/_dataclass_util.py +31 -0
- gstaichi/lang/_fast_caching/__init__.py +3 -0
- gstaichi/lang/_fast_caching/args_hasher.py +110 -0
- gstaichi/lang/_fast_caching/config_hasher.py +30 -0
- gstaichi/lang/_fast_caching/fast_caching_types.py +21 -0
- gstaichi/lang/_fast_caching/function_hasher.py +57 -0
- gstaichi/lang/_fast_caching/hash_utils.py +11 -0
- gstaichi/lang/_fast_caching/python_side_cache.py +52 -0
- gstaichi/lang/_fast_caching/src_hasher.py +75 -0
- gstaichi/lang/_kernel_impl_dataclass.py +212 -0
- gstaichi/lang/_template_mapper.py +16 -20
- gstaichi/lang/_wrap_inspect.py +27 -1
- gstaichi/lang/ast/ast_transformer.py +7 -2
- gstaichi/lang/ast/ast_transformer_utils.py +18 -13
- gstaichi/lang/ast/ast_transformers/call_transformer.py +73 -16
- gstaichi/lang/ast/ast_transformers/function_def_transformer.py +102 -118
- gstaichi/lang/field.py +0 -38
- gstaichi/lang/impl.py +25 -24
- gstaichi/lang/kernel_arguments.py +28 -30
- gstaichi/lang/kernel_impl.py +154 -200
- gstaichi/lang/matrix.py +0 -46
- gstaichi/lang/struct.py +0 -45
- gstaichi/lang/util.py +11 -80
- gstaichi/types/annotations.py +10 -5
- gstaichi/types/compound_types.py +1 -20
- gstaichi/types/ndarray_type.py +31 -11
- gstaichi/types/utils.py +0 -2
- {gstaichi-0.1.25.dev0.dist-info → gstaichi-2.0.0.dist-info}/METADATA +2 -1
- gstaichi-2.0.0.dist-info/RECORD +177 -0
- gstaichi/__main__.py +0 -5
- gstaichi/_main.py +0 -545
- gstaichi/lang/argpack.py +0 -411
- gstaichi-0.1.25.dev0.dist-info/RECORD +0 -168
- gstaichi-0.1.25.dev0.dist-info/entry_points.txt +0 -2
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/GLFW/glfw3.h +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/GLFW/glfw3native.h +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv-tools/instrument.hpp +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv-tools/libspirv.h +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv-tools/libspirv.hpp +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv-tools/linker.hpp +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv-tools/optimizer.hpp +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/GLSL.std.450.h +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv.h +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv.hpp +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_cfg.hpp +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_common.hpp +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_cpp.hpp +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_cross.hpp +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_cross_c.h +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_cross_containers.hpp +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_cross_error_handling.hpp +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_cross_parsed_ir.hpp +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_cross_util.hpp +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_glsl.hpp +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_hlsl.hpp +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_msl.hpp +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_parser.hpp +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_reflect.hpp +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools/SPIRV-ToolsConfig.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools/SPIRV-ToolsTarget-release.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools/SPIRV-ToolsTarget.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-diff/SPIRV-Tools-diffConfig.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-diff/SPIRV-Tools-diffTargets-release.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-diff/SPIRV-Tools-diffTargets.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-link/SPIRV-Tools-linkConfig.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-link/SPIRV-Tools-linkTargets-release.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-link/SPIRV-Tools-linkTargets.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-lint/SPIRV-Tools-lintConfig.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-lint/SPIRV-Tools-lintTargets-release.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-lint/SPIRV-Tools-lintTargets.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-opt/SPIRV-Tools-optConfig.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-opt/SPIRV-Tools-optTargets-release.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-opt/SPIRV-Tools-optTargets.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-reduce/SPIRV-Tools-reduceConfig.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-reduce/SPIRV-Tools-reduceTarget-release.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-reduce/SPIRV-Tools-reduceTarget.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/glfw3/glfw3Config.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/glfw3/glfw3ConfigVersion.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/glfw3/glfw3Targets-release.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/glfw3/glfw3Targets.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/libSPIRV-Tools-shared.dylib +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_c/cmake/spirv_cross_cConfig-release.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_c/cmake/spirv_cross_cConfig.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_core/cmake/spirv_cross_coreConfig-release.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_core/cmake/spirv_cross_coreConfig.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_cpp/cmake/spirv_cross_cppConfig-release.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_cpp/cmake/spirv_cross_cppConfig.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_glsl/cmake/spirv_cross_glslConfig-release.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_glsl/cmake/spirv_cross_glslConfig.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_hlsl/cmake/spirv_cross_hlslConfig-release.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_hlsl/cmake/spirv_cross_hlslConfig.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_msl/cmake/spirv_cross_mslConfig-release.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_msl/cmake/spirv_cross_mslConfig.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_reflect/cmake/spirv_cross_reflectConfig-release.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_reflect/cmake/spirv_cross_reflectConfig.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_util/cmake/spirv_cross_utilConfig-release.cmake +0 -0
- {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_util/cmake/spirv_cross_utilConfig.cmake +0 -0
- {gstaichi-0.1.25.dev0.dist-info → gstaichi-2.0.0.dist-info}/WHEEL +0 -0
- {gstaichi-0.1.25.dev0.dist-info → gstaichi-2.0.0.dist-info}/licenses/LICENSE +0 -0
- {gstaichi-0.1.25.dev0.dist-info → gstaichi-2.0.0.dist-info}/top_level.txt +0 -0
gstaichi/lang/matrix.py
CHANGED
@@ -27,7 +27,6 @@ from gstaichi.lang.util import (
|
|
27
27
|
in_python_scope,
|
28
28
|
python_scope,
|
29
29
|
to_numpy_type,
|
30
|
-
to_paddle_type,
|
31
30
|
to_pytorch_type,
|
32
31
|
warning,
|
33
32
|
)
|
@@ -1301,33 +1300,6 @@ class MatrixField(Field):
|
|
1301
1300
|
runtime_ops.sync()
|
1302
1301
|
return arr
|
1303
1302
|
|
1304
|
-
def to_paddle(self, place=None, keep_dims=False):
|
1305
|
-
"""Converts the field instance to a Paddle tensor.
|
1306
|
-
|
1307
|
-
Args:
|
1308
|
-
place (paddle.CPUPlace()/CUDAPlace(n), optional): The desired place of returned tensor.
|
1309
|
-
keep_dims (bool, optional): Whether to keep the dimension after conversion.
|
1310
|
-
See :meth:`~gstaichi.lang.field.MatrixField.to_numpy` for more detailed explanation.
|
1311
|
-
|
1312
|
-
Returns:
|
1313
|
-
paddle.Tensor: The result paddle tensor.
|
1314
|
-
"""
|
1315
|
-
import paddle # pylint: disable=C0415
|
1316
|
-
|
1317
|
-
as_vector = self.m == 1 and not keep_dims and self.ndim == 1
|
1318
|
-
shape_ext = (self.n,) if as_vector else (self.n, self.m)
|
1319
|
-
# pylint: disable=E1101
|
1320
|
-
# paddle.empty() doesn't support argument `place``
|
1321
|
-
arr = paddle.to_tensor(
|
1322
|
-
paddle.empty(self.shape + shape_ext, to_paddle_type(self.dtype)),
|
1323
|
-
place=place,
|
1324
|
-
)
|
1325
|
-
from gstaichi._kernels import matrix_to_ext_arr # pylint: disable=C0415
|
1326
|
-
|
1327
|
-
matrix_to_ext_arr(self, arr, as_vector)
|
1328
|
-
runtime_ops.sync()
|
1329
|
-
return arr
|
1330
|
-
|
1331
1303
|
@python_scope
|
1332
1304
|
def _from_external_arr(self, arr):
|
1333
1305
|
if len(arr.shape) == len(self.shape) + 1:
|
@@ -1500,24 +1472,6 @@ class MatrixType(CompoundType):
|
|
1500
1472
|
for j in range(self.m):
|
1501
1473
|
set_arg_func(ret_index + (i * self.m + j,), mat[i, j])
|
1502
1474
|
|
1503
|
-
def set_argpack_struct_args(self, mat, argpack, ret_index=()):
|
1504
|
-
if self.dtype in primitive_types.integer_types:
|
1505
|
-
if is_signed(cook_dtype(self.dtype)):
|
1506
|
-
set_arg_func = argpack.set_arg_int
|
1507
|
-
else:
|
1508
|
-
set_arg_func = argpack.set_arg_uint
|
1509
|
-
elif self.dtype in primitive_types.real_types:
|
1510
|
-
set_arg_func = argpack.set_arg_float
|
1511
|
-
else:
|
1512
|
-
raise GsTaichiRuntimeTypeError(f"Invalid return type on index={ret_index}")
|
1513
|
-
if self.ndim == 1:
|
1514
|
-
for i in range(self.n):
|
1515
|
-
set_arg_func(ret_index + (i,), mat[i])
|
1516
|
-
else:
|
1517
|
-
for i in range(self.n):
|
1518
|
-
for j in range(self.m):
|
1519
|
-
set_arg_func(ret_index + (i * self.m + j,), mat[i, j])
|
1520
|
-
|
1521
1475
|
def _instantiate_in_python_scope(self, entries):
|
1522
1476
|
entries = [[entries[k * self.m + i] for i in range(self.m)] for k in range(self.n)]
|
1523
1477
|
return Matrix(
|
gstaichi/lang/struct.py
CHANGED
@@ -528,17 +528,6 @@ class StructField(Field):
|
|
528
528
|
for k, v in self._items:
|
529
529
|
v.from_torch(array_dict[k])
|
530
530
|
|
531
|
-
@python_scope
|
532
|
-
def from_paddle(self, array_dict):
|
533
|
-
"""Copies the data from a set of `paddle.Tensor` into this field.
|
534
|
-
|
535
|
-
The argument `array_dict` must be a dictionay-like object, it
|
536
|
-
contains all the keys in this field and the copying process
|
537
|
-
between corresponding items can be performed.
|
538
|
-
"""
|
539
|
-
for k, v in self._items:
|
540
|
-
v.from_paddle(array_dict[k])
|
541
|
-
|
542
531
|
@python_scope
|
543
532
|
def to_numpy(self):
|
544
533
|
"""Converts the Struct field instance to a dictionary of NumPy arrays.
|
@@ -566,22 +555,6 @@ class StructField(Field):
|
|
566
555
|
"""
|
567
556
|
return {k: v.to_torch(device=device) for k, v in self._items}
|
568
557
|
|
569
|
-
@python_scope
|
570
|
-
def to_paddle(self, place=None):
|
571
|
-
"""Converts the Struct field instance to a dictionary of Paddle tensors.
|
572
|
-
|
573
|
-
The dictionary may be nested when converting nested structs.
|
574
|
-
|
575
|
-
Args:
|
576
|
-
place (paddle.CPUPlace()/CUDAPlace(n), optional): The
|
577
|
-
desired place of returned tensor.
|
578
|
-
|
579
|
-
Returns:
|
580
|
-
Dict[str, Union[paddle.Tensor, Dict]]: The result
|
581
|
-
Paddle tensor.
|
582
|
-
"""
|
583
|
-
return {k: v.to_paddle(place=place) for k, v in self._items}
|
584
|
-
|
585
558
|
@python_scope
|
586
559
|
def __setitem__(self, indices, element):
|
587
560
|
self._initialize_host_accessors()
|
@@ -742,24 +715,6 @@ class StructType(CompoundType):
|
|
742
715
|
else:
|
743
716
|
raise GsTaichiRuntimeTypeError(f"Invalid argument type on index={ret_index + (index, )}")
|
744
717
|
|
745
|
-
def set_argpack_struct_args(self, struct, argpack, ret_index=()):
|
746
|
-
# TODO: move this to class Struct after we add dtype to Struct
|
747
|
-
items = self.members.items()
|
748
|
-
for index, pair in enumerate(items):
|
749
|
-
name, dtype = pair
|
750
|
-
if isinstance(dtype, CompoundType):
|
751
|
-
dtype.set_kernel_struct_args(struct[name], argpack, ret_index + (index,))
|
752
|
-
else:
|
753
|
-
if dtype in primitive_types.integer_types:
|
754
|
-
if is_signed(cook_dtype(dtype)):
|
755
|
-
argpack.set_arg_int(ret_index + (index,), struct[name])
|
756
|
-
else:
|
757
|
-
argpack.set_arg_uint(ret_index + (index,), struct[name])
|
758
|
-
elif dtype in primitive_types.real_types:
|
759
|
-
argpack.set_arg_float(ret_index + (index,), struct[name])
|
760
|
-
else:
|
761
|
-
raise GsTaichiRuntimeTypeError(f"Invalid argument type on index={ret_index + (index, )}")
|
762
|
-
|
763
718
|
def cast(self, struct):
|
764
719
|
# sanity check members
|
765
720
|
if self.members.keys() != struct._Struct__entries.keys():
|
gstaichi/lang/util.py
CHANGED
@@ -1,9 +1,8 @@
|
|
1
|
-
# type: ignore
|
2
|
-
|
3
1
|
import functools
|
4
2
|
import os
|
5
3
|
import traceback
|
6
4
|
import warnings
|
5
|
+
from typing import Any
|
7
6
|
|
8
7
|
import numpy as np
|
9
8
|
from colorama import Fore, Style
|
@@ -11,6 +10,7 @@ from colorama import Fore, Style
|
|
11
10
|
from gstaichi._lib import core as _ti_core
|
12
11
|
from gstaichi._logging import is_logging_effective
|
13
12
|
from gstaichi.lang import impl
|
13
|
+
from gstaichi.types import Template
|
14
14
|
from gstaichi.types.primitive_types import (
|
15
15
|
f16,
|
16
16
|
f32,
|
@@ -46,24 +46,6 @@ def has_pytorch():
|
|
46
46
|
return _has_pytorch
|
47
47
|
|
48
48
|
|
49
|
-
def has_paddle():
|
50
|
-
"""Whether has paddle in the current Python environment.
|
51
|
-
|
52
|
-
Returns:
|
53
|
-
bool: True if has paddle else False.
|
54
|
-
"""
|
55
|
-
_has_paddle = False
|
56
|
-
_env_paddle = os.environ.get("TI_ENABLE_PADDLE", "1")
|
57
|
-
if not _env_paddle or int(_env_paddle):
|
58
|
-
try:
|
59
|
-
import paddle # pylint: disable=C0415
|
60
|
-
|
61
|
-
_has_paddle = True
|
62
|
-
except:
|
63
|
-
pass
|
64
|
-
return _has_paddle
|
65
|
-
|
66
|
-
|
67
49
|
def get_clangpp():
|
68
50
|
from distutils.spawn import find_executable # pylint: disable=C0415
|
69
51
|
|
@@ -183,43 +165,8 @@ def to_pytorch_type(dt):
|
|
183
165
|
raise RuntimeError(f"PyTorch doesn't support {dt.to_string()} data type.")
|
184
166
|
|
185
167
|
|
186
|
-
def to_paddle_type(dt):
|
187
|
-
"""Convert gstaichi data type to its counterpart in paddle.
|
188
|
-
|
189
|
-
Args:
|
190
|
-
dt (DataType): The desired data type to convert.
|
191
|
-
|
192
|
-
Returns:
|
193
|
-
DataType: The counterpart data type in paddle.
|
194
|
-
|
195
|
-
"""
|
196
|
-
import paddle # pylint: disable=C0415
|
197
|
-
|
198
|
-
if dt == f32:
|
199
|
-
return paddle.float32
|
200
|
-
if dt == f64:
|
201
|
-
return paddle.float64
|
202
|
-
if dt == i32:
|
203
|
-
return paddle.int32
|
204
|
-
if dt == i64:
|
205
|
-
return paddle.int64
|
206
|
-
if dt == i8:
|
207
|
-
return paddle.int8
|
208
|
-
if dt == i16:
|
209
|
-
return paddle.int16
|
210
|
-
if dt == u1:
|
211
|
-
return paddle.bool
|
212
|
-
if dt == u8:
|
213
|
-
return paddle.uint8
|
214
|
-
if dt == f16:
|
215
|
-
return paddle.float16
|
216
|
-
if dt in (u16, u32, u64):
|
217
|
-
raise RuntimeError(f"Paddle doesn't support {dt.to_string()} data type.")
|
218
|
-
assert False
|
219
|
-
|
220
|
-
|
221
168
|
def to_gstaichi_type(dt):
|
222
|
-
"""Convert numpy or torch
|
169
|
+
"""Convert numpy or torch data type to its counterpart in gstaichi.
|
223
170
|
|
224
171
|
Args:
|
225
172
|
dt (DataType): The desired data type to convert.
|
@@ -289,30 +236,6 @@ def to_gstaichi_type(dt):
|
|
289
236
|
|
290
237
|
raise RuntimeError(f"PyTorch doesn't support {dt.to_string()} data type before version 2.3.0.")
|
291
238
|
|
292
|
-
if has_paddle():
|
293
|
-
import paddle # pylint: disable=C0415
|
294
|
-
|
295
|
-
if dt == paddle.float32:
|
296
|
-
return f32
|
297
|
-
if dt == paddle.float64:
|
298
|
-
return f64
|
299
|
-
if dt == paddle.int32:
|
300
|
-
return i32
|
301
|
-
if dt == paddle.int64:
|
302
|
-
return i64
|
303
|
-
if dt == paddle.int8:
|
304
|
-
return i8
|
305
|
-
if dt == paddle.int16:
|
306
|
-
return i16
|
307
|
-
if dt == paddle.bool:
|
308
|
-
return u1
|
309
|
-
if dt == paddle.uint8:
|
310
|
-
return u8
|
311
|
-
if dt == paddle.float16:
|
312
|
-
return f16
|
313
|
-
if dt in (u16, u32, u64):
|
314
|
-
raise RuntimeError(f"Paddle doesn't support {dt.to_string()} data type.")
|
315
|
-
|
316
239
|
raise AssertionError(f"Unknown type {dt}")
|
317
240
|
|
318
241
|
|
@@ -378,4 +301,12 @@ def get_traceback(stacklevel=1):
|
|
378
301
|
return "".join(traceback.format_list(s))
|
379
302
|
|
380
303
|
|
304
|
+
def is_data_oriented(obj: Any) -> bool:
|
305
|
+
return getattr(obj, "_data_oriented", False)
|
306
|
+
|
307
|
+
|
308
|
+
def is_ti_template(annotation: Any) -> bool:
|
309
|
+
return annotation == Template or isinstance(annotation, Template)
|
310
|
+
|
311
|
+
|
381
312
|
__all__ = []
|
gstaichi/types/annotations.py
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
-
|
1
|
+
from typing import Any, Generic, TypeVar
|
2
2
|
|
3
|
+
T = TypeVar("T")
|
3
4
|
|
4
|
-
|
5
|
+
|
6
|
+
class Template(Generic[T]):
|
5
7
|
"""Type annotation for template kernel parameter.
|
6
8
|
Useful for passing parameters to kernels by reference.
|
7
9
|
|
@@ -30,9 +32,12 @@ class Template:
|
|
30
32
|
>>> test_template(a) # will print 2
|
31
33
|
"""
|
32
34
|
|
33
|
-
def __init__(self,
|
34
|
-
self.
|
35
|
-
self.
|
35
|
+
def __init__(self, element_type: type[T] = object, ndim: int | None = None):
|
36
|
+
self.element_type = element_type
|
37
|
+
self.ndim = ndim
|
38
|
+
|
39
|
+
def __getitem__(self, i: Any) -> T:
|
40
|
+
raise NotImplemented
|
36
41
|
|
37
42
|
|
38
43
|
template = Template
|
gstaichi/types/compound_types.py
CHANGED
@@ -68,23 +68,4 @@ def struct(**kwargs):
|
|
68
68
|
return gstaichi.lang.struct.StructType(**kwargs)
|
69
69
|
|
70
70
|
|
71
|
-
|
72
|
-
"""Creates an argument pack type with given members.
|
73
|
-
|
74
|
-
Args:
|
75
|
-
kwargs (dict): a dictionary contains the names and types of the
|
76
|
-
argument pack members.
|
77
|
-
|
78
|
-
Returns:
|
79
|
-
A argument pack type.
|
80
|
-
|
81
|
-
Example::
|
82
|
-
|
83
|
-
>>> vec3 = ti.types.vector(3, ti.f32)
|
84
|
-
>>> sphere = ti.types.argpack(center=vec3, radius=float)
|
85
|
-
>>> s = sphere(center=vec3([0., 0., 0.]), radius=1.0)
|
86
|
-
"""
|
87
|
-
return gstaichi.lang.argpack.ArgPackType(**kwargs)
|
88
|
-
|
89
|
-
|
90
|
-
__all__ = ["matrix", "vector", "struct", "argpack"]
|
71
|
+
__all__ = ["matrix", "vector", "struct"]
|
gstaichi/types/ndarray_type.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
from typing import Any
|
2
2
|
|
3
3
|
from gstaichi.types.compound_types import CompoundType, matrix, vector
|
4
4
|
from gstaichi.types.enums import Layout, to_boundary_enum
|
@@ -32,7 +32,8 @@ def _make_matrix_dtype_from_element_shape(element_dim, element_shape, primitive_
|
|
32
32
|
# Check dim consistency. The matrix dtype will be cooked later.
|
33
33
|
if element_shape is not None and len(element_shape) != element_dim:
|
34
34
|
raise ValueError(
|
35
|
-
f"Both element_shape and element_dim are specified, but shape doesn't match specified dim:
|
35
|
+
f"Both element_shape and element_dim are specified, but shape doesn't match specified dim: "
|
36
|
+
f"{len(element_shape)}!={element_dim}"
|
36
37
|
)
|
37
38
|
mat_dtype = vector(None, primitive_dtype) if element_dim == 1 else matrix(None, None, primitive_dtype)
|
38
39
|
elif element_shape is not None:
|
@@ -50,14 +51,24 @@ class NdarrayType:
|
|
50
51
|
"""Type annotation for arbitrary arrays, including external arrays (numpy ndarrays and torch tensors) and GsTaichi ndarrays.
|
51
52
|
|
52
53
|
For external arrays, we treat it as a GsTaichi data container with Scalar, Vector or Matrix elements.
|
53
|
-
For GsTaichi vector/matrix ndarrays, we will automatically identify element dimension and their corresponding axis by the
|
54
|
-
|
54
|
+
For GsTaichi vector/matrix ndarrays, we will automatically identify element dimension and their corresponding axis by the
|
55
|
+
dimension of datatype, say scalars, matrices or vectors.
|
56
|
+
For example, given type annotation `ti.types.ndarray(dtype=ti.math.vec3)`, a numpy array `np.zeros(10, 10, 3)` will be
|
57
|
+
recognized as a 10x10 matrix composed of vec3 elements.
|
55
58
|
|
56
59
|
Args:
|
57
60
|
dtype (Union[PrimitiveType, VectorType, MatrixType, NoneType], optional): None if not speicified.
|
58
|
-
ndim (Union[Int, NoneType]): None if not specified, number of field dimensions. This argument is ignored for
|
59
|
-
|
60
|
-
|
61
|
+
ndim (Union[Int, NoneType]): None if not specified, number of field dimensions. This argument is ignored for externa
|
62
|
+
arrays for now.
|
63
|
+
element_dim (Union[Int, NoneType], optional):
|
64
|
+
None if not specified (will be treated as 0 for external arrays),
|
65
|
+
0 if scalar elements,
|
66
|
+
1 if vector elements, and
|
67
|
+
2 if matrix elements.
|
68
|
+
element_shape (Union[Tuple[Int], NoneType]):
|
69
|
+
None if not specified, shapes of each element.
|
70
|
+
For example, element_shape must be 1d for vector and 2d tuple for matrix.
|
71
|
+
This argument is ignored for external arrays for now.
|
61
72
|
"""
|
62
73
|
|
63
74
|
def __init__(
|
@@ -93,9 +104,10 @@ class NdarrayType:
|
|
93
104
|
|
94
105
|
# Check dtype match
|
95
106
|
if isinstance(self.dtype, CompoundType):
|
96
|
-
if not self.dtype.check_matched(ndarray_type.element_type):
|
107
|
+
if not self.dtype.check_matched(ndarray_type.element_type): # type: ignore
|
97
108
|
raise ValueError(
|
98
|
-
f"Invalid value for argument {arg_name} - required element type: {self.dtype.to_string()},
|
109
|
+
f"Invalid value for argument {arg_name} - required element type: {self.dtype.to_string()}, " # type: ignore
|
110
|
+
f"but {ndarray_type.element_type.to_string()} is provided"
|
99
111
|
)
|
100
112
|
else:
|
101
113
|
if self.dtype is not None:
|
@@ -110,14 +122,16 @@ class NdarrayType:
|
|
110
122
|
# Check ndim match
|
111
123
|
if self.ndim is not None and ndarray_type.shape is not None and self.ndim != len(ndarray_type.shape):
|
112
124
|
raise ValueError(
|
113
|
-
f"Invalid value for argument {arg_name} - required ndim={self.ndim}, but {len(ndarray_type.shape)}d
|
125
|
+
f"Invalid value for argument {arg_name} - required ndim={self.ndim}, but {len(ndarray_type.shape)}d "
|
126
|
+
f"ndarray with shape {ndarray_type.shape} is provided"
|
114
127
|
)
|
115
128
|
|
116
129
|
# Check needs_grad
|
117
130
|
if self.needs_grad is not None and self.needs_grad > ndarray_type.needs_grad:
|
118
131
|
# It's okay to pass a needs_grad=True ndarray at runtime to a need_grad=False arg but not vice versa.
|
119
132
|
raise ValueError(
|
120
|
-
f"Invalid value for argument {arg_name} - required needs_grad={self.needs_grad}, but
|
133
|
+
f"Invalid value for argument {arg_name} - required needs_grad={self.needs_grad}, but "
|
134
|
+
f"{ndarray_type.needs_grad} is provided"
|
121
135
|
)
|
122
136
|
|
123
137
|
def __repr__(self):
|
@@ -126,6 +140,12 @@ class NdarrayType:
|
|
126
140
|
def __str__(self):
|
127
141
|
return self.__repr__()
|
128
142
|
|
143
|
+
def __getitem__(self, i: Any) -> Any:
|
144
|
+
raise NotImplemented
|
145
|
+
|
146
|
+
def __setitem__(self, i: Any, v: Any) -> None:
|
147
|
+
raise NotImplemented
|
148
|
+
|
129
149
|
|
130
150
|
ndarray = NdarrayType
|
131
151
|
NDArray = NdarrayType
|
gstaichi/types/utils.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: gstaichi
|
3
|
-
Version: 0.
|
3
|
+
Version: 2.0.0
|
4
4
|
Summary: The GsTaichi Programming Language
|
5
5
|
Home-page: https://github.com/Genesis-Embedded-AI/gstaichi
|
6
6
|
Author: GsTaichi developers
|
@@ -23,6 +23,7 @@ License-File: LICENSE
|
|
23
23
|
Requires-Dist: numpy
|
24
24
|
Requires-Dist: colorama
|
25
25
|
Requires-Dist: dill
|
26
|
+
Requires-Dist: pydantic
|
26
27
|
Requires-Dist: rich
|
27
28
|
Requires-Dist: setuptools>=68.0.0
|
28
29
|
Requires-Dist: cffi>=1.16.0
|
@@ -0,0 +1,177 @@
|
|
1
|
+
gstaichi/CHANGELOG.md,sha256=s5PJZHpNxjiG83ZvAjrleHBMjvhI8newvYwZZg0rfi4,162
|
2
|
+
gstaichi/__init__.py,sha256=z8vnx8FS8Ct_b95YOhyNAOzmOsosUAjkYVD1UBxVElo,1004
|
3
|
+
gstaichi/_funcs.py,sha256=qH9VMUS6nN0gaRAMSmc0NBrLPGFSDyexWO9tNmz-FV0,23237
|
4
|
+
gstaichi/_kernels.py,sha256=M0xE_zhKBCeMRHsacuonGUW2D5QaggQVK-qDblGo2AI,14244
|
5
|
+
gstaichi/_logging.py,sha256=Utlv0ZjZLA3xlq80yJN8o91aD6FH8H6W3Wiyl04S8ts,3682
|
6
|
+
gstaichi/_version.py,sha256=hwOJuFUEKtsgiOt4l6op9s-hviovM6TK1uCdtRNWY4E,22
|
7
|
+
gstaichi/_version_check.py,sha256=aGUtrx_Q5U8hC5hI2ju_RIA-zzxfUfRIb1ZlU1TiL_M,3653
|
8
|
+
gstaichi/experimental.py,sha256=qNLQ6EYcDoapr3hELwXSJXECT5XrTncqv5LRF34Pfhs,343
|
9
|
+
gstaichi/_lib/__init__.py,sha256=eo5ZIaTVkv6CzHZpK6tmSgIBZNu0V9UCRhSkieXtgKA,71
|
10
|
+
gstaichi/_lib/utils.py,sha256=DQeT2jYpn06tWkwbGYq3efQfZlTpmSu_xq5mUG3vwZM,7841
|
11
|
+
gstaichi/_lib/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
12
|
+
gstaichi/_lib/core/gstaichi_python.cpython-312-darwin.so,sha256=lCl13UC9N4YpAAx_N7CHHtLcEiN7Wm3Ri7UuQYX3jng,104866616
|
13
|
+
gstaichi/_lib/core/gstaichi_python.pyi,sha256=aiWud5rtyb-521nrMJsDpLo07874CNwiS5XlXl4Kttk,110444
|
14
|
+
gstaichi/_lib/core/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
15
|
+
gstaichi/_lib/runtime/libMoltenVK.dylib,sha256=bv34qLD2kzftQaZ-JZ49dxMZali6a9hh0Ak0QZBu1BQ,14024368
|
16
|
+
gstaichi/_lib/runtime/runtime_arm64.bc,sha256=NESCb2rp8mRR63Xvd0Sb_eGGq7RGjV9Aa4o8koEKf2U,147376
|
17
|
+
gstaichi/_snode/__init__.py,sha256=Vn0wolaGt5L69DCZXOs8Hwo1-_hXq_YM63AwHedYuVQ,102
|
18
|
+
gstaichi/_snode/fields_builder.py,sha256=Wz_73sJUC1CPWSxueiRb3Qdh_fEqHd1PkOpb3gGSvFM,6763
|
19
|
+
gstaichi/_snode/snode_tree.py,sha256=a1Kexuk6uoMOY9ES4zLFhOkIWkSPtXNGna9U5OZvO1s,1197
|
20
|
+
gstaichi/_test_tools/__init__.py,sha256=7tZpaFH1v4XyeFhG54xtWuY2u-iQFGbCnsRPo8hQ0wE,441
|
21
|
+
gstaichi/_test_tools/dataclass_test_tools.py,sha256=QxqrCT8ahOuI5WXgrxPi5ae5aiKt2ZB45-vtTSYukMw,1213
|
22
|
+
gstaichi/_test_tools/load_kernel_string.py,sha256=7U-oAWLfH9xYhVWHlnOUrUm2GIJ5xJqwDljneFPqU-w,1007
|
23
|
+
gstaichi/_test_tools/textwrap2.py,sha256=5LWYdy49gRKtAniLqs3LjoqWVZB2w7ccCUty7K-oY_8,180
|
24
|
+
gstaichi/ad/__init__.py,sha256=T-qo_Lq1g1U2jTN_e8bZuKxxGYQceO9FJGUgPzBhZVo,46
|
25
|
+
gstaichi/ad/_ad.py,sha256=ZW_CM_rIv4U290FBpk-NCUWdJJGR87zKx4d_7W1GdKo,19212
|
26
|
+
gstaichi/algorithms/__init__.py,sha256=jRJLdZCnqEuH6k5XLI8Q7VjnJtRkGh18Y5pd2AvqOKA,43
|
27
|
+
gstaichi/algorithms/_algorithms.py,sha256=o-Bpi77G8bSnUQuUC62lX6cDlaFBBzIQGuTwdMCYfKQ,3705
|
28
|
+
gstaichi/assets/.git,sha256=_sepXJOH-4A9o4jtu-46jG2P6XHHbsvGW3642aKNQBc,43
|
29
|
+
gstaichi/assets/Go-Regular.ttf,sha256=S7gpWTE2QWxqOezcRUguBS91rDdOZFm5r2jU-6J5OWw,134988
|
30
|
+
gstaichi/assets/static/imgs/ti_gallery.png,sha256=rOeh8JlUXb-ZdkTaei3cVyJXZBWOqcJBLdndAORUdtU,263871
|
31
|
+
gstaichi/examples/minimal.py,sha256=C03_WE8qWL20O8pVcVWrUM2w5FAaRzoKGIU6FaNxBo0,605
|
32
|
+
gstaichi/lang/__init__.py,sha256=fyvdrIYXVSFAZ1wfhbZ-rci-ehOQ-IoCBdmp1bNSDbk,1281
|
33
|
+
gstaichi/lang/_dataclass_util.py,sha256=O2WSkliHzBQKhSA8qGquPgEHeAEhKxxXQI8OZix3bNM,1091
|
34
|
+
gstaichi/lang/_kernel_impl_dataclass.py,sha256=sCRtQvQ6fu088rwsfSs9VcLgstKl8yxV5Xwk7eD5vaM,7466
|
35
|
+
gstaichi/lang/_ndarray.py,sha256=E3MMzd6D8y1N1VPmmqPSDydEmkqiJAVjFSXtcdRxYkQ,10774
|
36
|
+
gstaichi/lang/_ndrange.py,sha256=gnaA19o5ws774I0-NvfQSAjOeO9RcxWCh05TdE-jRUs,5769
|
37
|
+
gstaichi/lang/_template_mapper.py,sha256=FpQXpdGFZl-_VsWMxXvb3Czfpxgd16XQt70RWFytlhQ,9746
|
38
|
+
gstaichi/lang/_texture.py,sha256=Knohwpg3ZytOncqKz_dJt9PY4nAyMMurVrts9y8aCT0,6612
|
39
|
+
gstaichi/lang/_wrap_inspect.py,sha256=QvaLIdASfgyRsyb0HAzhs2qQ2Ni_GqATqOQsmfC3-ss,7655
|
40
|
+
gstaichi/lang/any_array.py,sha256=NvJpXq08tAVU4XNCw1npdTgUllqRA2DD-1YChKuF-yw,3292
|
41
|
+
gstaichi/lang/common_ops.py,sha256=oMpmfX3wLRWC-QYF6x1nu084zKLUd31YTPww80uslBY,8458
|
42
|
+
gstaichi/lang/exception.py,sha256=Jns3tMC5T0qHKJVNpwqag8_WOU_8caRLWGoVKcqIKFY,2085
|
43
|
+
gstaichi/lang/expr.py,sha256=uWDZeeNiyOZ03jZcEzr0MYwsc8QkcxHoeKwCu8jN9YU,6407
|
44
|
+
gstaichi/lang/field.py,sha256=cxBZis2M5-mgw94R8Y9mBLenoHeQIBJjKv8cTp_L4-8,13249
|
45
|
+
gstaichi/lang/impl.py,sha256=Swk3Wu0I-U_fyO2bv8IL12oSF6xXbjKvLNGms5ULV1I,41553
|
46
|
+
gstaichi/lang/kernel_arguments.py,sha256=E_iClhUd6Yxe3iIPMSRjH8S_MNS20XfSePR-VsJ45_Y,6331
|
47
|
+
gstaichi/lang/kernel_impl.py,sha256=5xub1Ukh7keWZotHBrI8M1tXT6gluWjM6Jh2KP3ms-o,58861
|
48
|
+
gstaichi/lang/matrix.py,sha256=gSz1MkdOvlS5PQFy0xDV-H72S_GgwI2MuN1UvtN_zZY,61927
|
49
|
+
gstaichi/lang/matrix_ops.py,sha256=msDw-IIgr6BdwW_3nCgaU-4pl_j4pYQyUb9DPPLp510,10058
|
50
|
+
gstaichi/lang/matrix_ops_utils.py,sha256=bN78mfjvuKhdIZLn0PXYljiSZSiOeMPQJzO-4LgvtJk,5245
|
51
|
+
gstaichi/lang/mesh.py,sha256=uw-GuloR55l8pH6FjRgyCjkadGYjnU44lGQZq3P9CGE,27071
|
52
|
+
gstaichi/lang/misc.py,sha256=ywmRZIQPbhSg5p7IWEdXmzt8pN54LZ8QJXi3Wr3nweo,23302
|
53
|
+
gstaichi/lang/ops.py,sha256=DepTUWLWBHia7gzNSRshd_9zb4uQH_c3uUQ8Du2nlq4,44425
|
54
|
+
gstaichi/lang/runtime_ops.py,sha256=n5g-QPu2zVrxqqEhzBXR3xP9ULvdidv2DyCaNR3TRVY,224
|
55
|
+
gstaichi/lang/shell.py,sha256=RLVp21VXnuuH7AarvmdhmkJSj5Z4jY12W510-K9fi2M,1060
|
56
|
+
gstaichi/lang/snode.py,sha256=eau1yHHi7zR6OdWhPR2hIweSptYppfw0feWLzc6CLJs,17124
|
57
|
+
gstaichi/lang/source_builder.py,sha256=IyD5ZK7g27eINvhueBaoRBd24ZWSsCc_fQccS-8mSuo,5809
|
58
|
+
gstaichi/lang/struct.py,sha256=JoNdx2tuC-2yewM6H6xbwcDo36-4TREgOqvV4LTgyPw,29250
|
59
|
+
gstaichi/lang/util.py,sha256=4aJlYyqR9M5AeLbIxexRI_OqVHSDtpU4Mx0cJDT1_9g,7429
|
60
|
+
gstaichi/lang/_fast_caching/__init__.py,sha256=1yvu4qmlzOQrYS32WKNApEiUwz39yEGLUxGHOsQSR3k,94
|
61
|
+
gstaichi/lang/_fast_caching/args_hasher.py,sha256=fs2EDlDVmRZ_XbIKIKVnj87cFqDYzKYy_KzkZ8td9lo,3972
|
62
|
+
gstaichi/lang/_fast_caching/config_hasher.py,sha256=FC4lrf_n2b_FEvfCFdPfHkQ9a9j_9M8p9Uq6hr4SDj4,956
|
63
|
+
gstaichi/lang/_fast_caching/fast_caching_types.py,sha256=FfunbciW_pveeLhstRjcYWjybBWfPvefMwwteoqawLI,640
|
64
|
+
gstaichi/lang/_fast_caching/function_hasher.py,sha256=R4uaDz7vdv4StknIpf0NIkZGffyVfLr0FW5TjJPXeOU,1783
|
65
|
+
gstaichi/lang/_fast_caching/hash_utils.py,sha256=r6dCrZR79FyP-xeWplXQ8U9y6fCHS8FBVfLnnfeMpNM,311
|
66
|
+
gstaichi/lang/_fast_caching/python_side_cache.py,sha256=aAGeXVHI-_zPuM0gGEUU7rt2sCTnNmILZqmujYAu5hg,1795
|
67
|
+
gstaichi/lang/_fast_caching/src_hasher.py,sha256=z_xlVdwdC9GsUw-8RjH1Yh6VyiqaKGL-K-5AcFSvoyw,2906
|
68
|
+
gstaichi/lang/ast/__init__.py,sha256=lMX3ghPfKtq1QPJDIPnTy_T7G9_V_5J3HUvXBKRgMLY,211
|
69
|
+
gstaichi/lang/ast/ast_transformer.py,sha256=gS-zO93wvktqJXvy5_-mglHOgaQL532i27HqPbR-58A,58423
|
70
|
+
gstaichi/lang/ast/ast_transformer_utils.py,sha256=dPJ0GfwBHwWOsOv-BUFpsnVW-BRsBj7p2d2iOQaQkQI,11660
|
71
|
+
gstaichi/lang/ast/checkers.py,sha256=vCJunwWGIuU6k6iIt67skcddDqhPNG-MRty-Tki3Uto,3800
|
72
|
+
gstaichi/lang/ast/symbol_resolver.py,sha256=8kBIBvARgZSsF-qXJ2jFVW6M-9YJ57XxRzFKp4O1ooE,1772
|
73
|
+
gstaichi/lang/ast/transform.py,sha256=8zURUELi8CzlvY0eZRiphXGd2h0FB0j2SHrS3JhenT4,266
|
74
|
+
gstaichi/lang/ast/ast_transformers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
75
|
+
gstaichi/lang/ast/ast_transformers/call_transformer.py,sha256=UERThgJAVIu2egsFC4XiUXBh5xBMr3RjOV_PsO7bIyA,13512
|
76
|
+
gstaichi/lang/ast/ast_transformers/function_def_transformer.py,sha256=-lExMEBjqlXWgKGIL6xFmPPLnvDPx9ytkdZbqKbmXLE,12250
|
77
|
+
gstaichi/lang/simt/__init__.py,sha256=zLQjw-9zUx4-etcHPN4CFORATRF3hiJEXY1Yaog3-vs,124
|
78
|
+
gstaichi/lang/simt/block.py,sha256=dvZKkdRg6s5v0ah8HyVhA18hDZa2j-OjiJl0BWI0TEw,3639
|
79
|
+
gstaichi/lang/simt/grid.py,sha256=VBYkD5YyKuoSWLfH330a8jH5DPlTEpf5DqJAiSgJjQE,140
|
80
|
+
gstaichi/lang/simt/subgroup.py,sha256=Hv_KBrdbWc-CGAtaboSaMMpSvIjscabdisvJoyeshT0,3781
|
81
|
+
gstaichi/lang/simt/warp.py,sha256=wTBY73sD-n4fIdmVrhCmRIhCF19aNDo-_033tIRkCrE,3087
|
82
|
+
gstaichi/linalg/__init__.py,sha256=ijfsC4MnlrO5CNYK8-rinLgWIRCh_N4sXwzvVY85kxM,267
|
83
|
+
gstaichi/linalg/matrixfree_cg.py,sha256=k2Mb88Q2WJARSahl0XcrPu3RUFELSHdswonZmR3J6ZE,10338
|
84
|
+
gstaichi/linalg/sparse_cg.py,sha256=uFu9HaQNcE99fq_KqEghb-5-oIAZ7eMWJrCbzHgvak8,2558
|
85
|
+
gstaichi/linalg/sparse_matrix.py,sha256=VqIDmo9B65ugGl4vVFDgQNUno2NdQnUWzu_NazurCZo,10971
|
86
|
+
gstaichi/linalg/sparse_solver.py,sha256=5Na5ITJKP1BMDxDw5OLoE4qXZJdFt6tP4f60pDt-ogY,4928
|
87
|
+
gstaichi/math/__init__.py,sha256=vtN9Hm-e6nPHbjOwS_X06A9uLakNtIXeR10vT4whATw,203
|
88
|
+
gstaichi/math/_complex.py,sha256=FRy47TDF1jQluxzS8ZNIt846IncGvlg8lycYbZvjt4k,4980
|
89
|
+
gstaichi/math/mathimpl.py,sha256=uscq5LNB4wFC8ZUpI6EYZJ0VnfnXPO4wuPmgd_2na8E,21733
|
90
|
+
gstaichi/profiler/__init__.py,sha256=rFlnpZXzcyAVZqWE_mUiAhswtxCRc_jhws-19BwMCyc,207
|
91
|
+
gstaichi/profiler/kernel_metrics.py,sha256=h2UfrtqBAIfpP-xy953YkMtfa-zHe97W7FWSoFKeWbg,7623
|
92
|
+
gstaichi/profiler/kernel_profiler.py,sha256=-6y4lwuK5GS6nNM0BFXX0zoy-vlCv6E_Q54RNKCn1pA,22276
|
93
|
+
gstaichi/profiler/memory_profiler.py,sha256=FNs5xAeFg5d28-8JyVVh2SqOy2-rUB14CiBQje4K0cQ,343
|
94
|
+
gstaichi/profiler/scoped_profiler.py,sha256=dXsvN_gmtuHepZNh6gdQIOT7t4aqS_LjqrOuYncCk-M,971
|
95
|
+
gstaichi/sparse/__init__.py,sha256=cP9BeV3d5HBgLefeZPuZkaFVSi7DZ4LEasWvPcml0L0,44
|
96
|
+
gstaichi/sparse/_sparse_grid.py,sha256=wxnOG4CVthWXJurlyPm2AwZCr9OduPqMkZzbRNmD9ZE,2432
|
97
|
+
gstaichi/tools/__init__.py,sha256=Hejqi4SgdfMyc-JunAxKUJRyrVDaVL1zAsICw-L3BF4,317
|
98
|
+
gstaichi/tools/diagnose.py,sha256=qXwyU4gXBUFDKbq3Um_-fGb6Z0qRZ2-8Hw974peOJ6c,3448
|
99
|
+
gstaichi/tools/np2ply.py,sha256=cDTdB5jUUDd9GATmKhrxpCETfwrgib2o-o0hgqzBI6Q,15271
|
100
|
+
gstaichi/tools/vtk.py,sha256=CIOcgpiyiT3-ff8kPzxh1yUiM1SyzYSBKIaYcMJ_dOQ,1032
|
101
|
+
gstaichi/types/__init__.py,sha256=OMB4V4ycYKUy_b5IDAFec7c1qgXchkmLONY00OdZbmI,602
|
102
|
+
gstaichi/types/annotations.py,sha256=qDl1hlHopsw4hhiLOy96cfoktn7_HYZ4377NwN74l6U,1166
|
103
|
+
gstaichi/types/compound_types.py,sha256=CJgTVP15qbW5Y4lSiRnktI3wj_jKH5dyd3BQYJShgPI,1882
|
104
|
+
gstaichi/types/enums.py,sha256=NZGVkk-v3s3FIMEkweXrfSRgyq8-TZGBIqGGD2uDEG8,2050
|
105
|
+
gstaichi/types/ndarray_type.py,sha256=Cnazd_4DJvLjHKFxVJY5fsoKorX4WGzmyP3EqoHnvzE,7182
|
106
|
+
gstaichi/types/primitive_types.py,sha256=ykf9vGRSOR4lDBsOLBBr6p9ZVeWtkgiF57g-usi_EgY,4067
|
107
|
+
gstaichi/types/quant.py,sha256=uuluyzfa-geNJeNi-WPPaNr7LjETqcFQC9ZtRhp2K-8,2973
|
108
|
+
gstaichi/types/texture_type.py,sha256=u1--G0XYobhPRfjHe67K6BlzltQJADWIECm75kiZ_iI,2359
|
109
|
+
gstaichi/types/utils.py,sha256=HyoePA32zqARkXboA_inDU-3Wz-tMCoUk1z-6lwlM9Y,265
|
110
|
+
gstaichi-2.0.0.data/data/include/GLFW/glfw3.h,sha256=DdoqFswVaPjMg39kIprLTCXtLAm_SL32AewOM9BYazI,234397
|
111
|
+
gstaichi-2.0.0.data/data/include/GLFW/glfw3native.h,sha256=Ii0M4bk3Q9gtdaX9py5oYXPZf3Gvg21LEN8ut_YgXDQ,18803
|
112
|
+
gstaichi-2.0.0.data/data/include/spirv-tools/instrument.hpp,sha256=ya2k9Ldn9TO_6Av24nu1IcboAqQ6F3kCWKqylc0X-Kw,11649
|
113
|
+
gstaichi-2.0.0.data/data/include/spirv-tools/libspirv.h,sha256=zK7BxuhZ9pj0VT42VaW0eN8oaO3Dqge8vutJONH-AHI,41781
|
114
|
+
gstaichi-2.0.0.data/data/include/spirv-tools/libspirv.hpp,sha256=U9p_Bp76GOvXtxZEsnODMo1Vkm8SkfXVFYtVwKCzbL8,14637
|
115
|
+
gstaichi-2.0.0.data/data/include/spirv-tools/linker.hpp,sha256=Ls3qz9nQMRSBTWfp6DMBALdpOZTPMHRG2ObIuYf6OpI,3594
|
116
|
+
gstaichi-2.0.0.data/data/include/spirv-tools/optimizer.hpp,sha256=GH1UGi40uly0Gkau9ycjXc3vdC8fglaOFk-5OiEPWaI,49090
|
117
|
+
gstaichi-2.0.0.data/data/include/spirv_cross/GLSL.std.450.h,sha256=b1bglGY_3tRDWrHT2MJNcq2zv4KDL8AC7PCg1NllQ-k,3073
|
118
|
+
gstaichi-2.0.0.data/data/include/spirv_cross/spirv.h,sha256=orhWU1eZKmCgcVJ-7Yt-zFzsRsxh8Bw4EAFw-jRZw_A,132357
|
119
|
+
gstaichi-2.0.0.data/data/include/spirv_cross/spirv.hpp,sha256=CUXuWMG_54jKz9Dt3eTwmbiIMmSF7RmIvgb0yqeq3D4,125162
|
120
|
+
gstaichi-2.0.0.data/data/include/spirv_cross/spirv_cfg.hpp,sha256=IbpE_IcD4w1GjIlGFu79biqlPkpQ-mNj9Q3RePJvAgQ,3827
|
121
|
+
gstaichi-2.0.0.data/data/include/spirv_cross/spirv_common.hpp,sha256=hrEmJbIlQAl8n0S8RwXN2Yo_Qz4aXe-_McqaaAybP8c,47812
|
122
|
+
gstaichi-2.0.0.data/data/include/spirv_cross/spirv_cpp.hpp,sha256=aJ_UWlJBs_KclwL1ZqLJRn1CdI3kBy4ISdYC6uZq2gY,2637
|
123
|
+
gstaichi-2.0.0.data/data/include/spirv_cross/spirv_cross.hpp,sha256=ToozBntAj7C5dnNDoQSymzr6F3OwrAqVHBQCJVqJOK4,50906
|
124
|
+
gstaichi-2.0.0.data/data/include/spirv_cross/spirv_cross_c.h,sha256=Uf8i-6OYh0Z20jWOwftgAKXSrHYY3UlTgjD1ai77nxE,51487
|
125
|
+
gstaichi-2.0.0.data/data/include/spirv_cross/spirv_cross_containers.hpp,sha256=hKRGsaHCb8aesqmaV9MPr_Cp4YAD2dcklhcGXdAQ3L8,17960
|
126
|
+
gstaichi-2.0.0.data/data/include/spirv_cross/spirv_cross_error_handling.hpp,sha256=jKKPWeKf-E-FJUyJxbwy09zYKASACdlnaEUcpb6Di6o,2621
|
127
|
+
gstaichi-2.0.0.data/data/include/spirv_cross/spirv_cross_parsed_ir.hpp,sha256=ZF4IflfhbUsmIWVkds4SlzQEXNaGBzYVmEW-1CMORs8,9270
|
128
|
+
gstaichi-2.0.0.data/data/include/spirv_cross/spirv_cross_util.hpp,sha256=CUKwuuiI65hmha2vLWdB0V1IEXEQVtjbxo-oD0DRhIA,1402
|
129
|
+
gstaichi-2.0.0.data/data/include/spirv_cross/spirv_glsl.hpp,sha256=XvS8t-MCVJH2fwkcnrxtECdNqRQLd6PF0rv9w3P4K-E,47618
|
130
|
+
gstaichi-2.0.0.data/data/include/spirv_cross/spirv_hlsl.hpp,sha256=0zJmxOVji-yHIlC4Wph2RD5E0dYHM1jWJtLjrsJAY5M,16383
|
131
|
+
gstaichi-2.0.0.data/data/include/spirv_cross/spirv_msl.hpp,sha256=PIGKi-xLa5z6O5Qy3LbU93hzvKeG5QTepebI6Ny3siQ,60204
|
132
|
+
gstaichi-2.0.0.data/data/include/spirv_cross/spirv_parser.hpp,sha256=5cwhStHYe9eBg_LnKpAsD7mU3Bjnqm6D6Gyyh1cIwvI,2633
|
133
|
+
gstaichi-2.0.0.data/data/include/spirv_cross/spirv_reflect.hpp,sha256=qOs1tPZl1C6f-xivCfK2wbzD7575LdfZ3QQ8HpQ6i5Y,2503
|
134
|
+
gstaichi-2.0.0.data/data/lib/libSPIRV-Tools-shared.dylib,sha256=uwbCfTtkP-d71MIhHGWjF5aQcMTj2aYg38icy55zPk8,1899416
|
135
|
+
gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools/SPIRV-ToolsConfig.cmake,sha256=dMEufEjR-_w2-FovZM86J6L4mLAC0V_ghy3NSn-quds,225
|
136
|
+
gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools/SPIRV-ToolsTarget-release.cmake,sha256=udoS0FC5wj8lU72VVq8GeTJTzseWZ0btwt7-ULwiQHI,1396
|
137
|
+
gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools/SPIRV-ToolsTarget.cmake,sha256=vx24AucAN1drz4V3WjySdbl3D6KTsmn_XVYb3hht8Ig,4419
|
138
|
+
gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-diff/SPIRV-Tools-diffConfig.cmake,sha256=72Wr7X0CYzx3Vt-rI2YcqgXu0RFeVWJAlre9dqxANEE,275
|
139
|
+
gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-diff/SPIRV-Tools-diffTargets-release.cmake,sha256=TGr8cW-33wobWQGGXLpGsV3hkVrzmSTCHk3PNiInwQE,873
|
140
|
+
gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-diff/SPIRV-Tools-diffTargets.cmake,sha256=mn183rcp87-r_mBuzK1qQnprD5icDGNesRhhcKWerv4,5010
|
141
|
+
gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-link/SPIRV-Tools-linkConfig.cmake,sha256=_LKmSzAEq3x0KnvZ0G8XeoLuMDuHoL78IAdJpeJGdew,275
|
142
|
+
gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-link/SPIRV-Tools-linkTargets-release.cmake,sha256=UXaiPMo8XzoeYmZNDFGfHEhMi2bo38qJ5ymF6qC6Qgo,873
|
143
|
+
gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-link/SPIRV-Tools-linkTargets.cmake,sha256=lIKD2R2v5-2L0UpqjIH9CIDBKWknMHYUKgWfK_pFn8U,4970
|
144
|
+
gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-lint/SPIRV-Tools-lintConfig.cmake,sha256=NUFb5HZvW5-c5yAt91Yo64tMFfue-1vRa1t7H6o3IBY,275
|
145
|
+
gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-lint/SPIRV-Tools-lintTargets-release.cmake,sha256=twMwM0B9qJYgOxID49zEQIF5NtyhnGB0HXksUb-XH14,873
|
146
|
+
gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-lint/SPIRV-Tools-lintTargets.cmake,sha256=JG8ctvqSzUuOYEms-waLgrIfnH6y1ps3vm11A4MaB88,5010
|
147
|
+
gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-opt/SPIRV-Tools-optConfig.cmake,sha256=vKq0g25OpIoYmEt_h6On0dYj8OKETBlrkn3f_jhAHzE,270
|
148
|
+
gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-opt/SPIRV-Tools-optTargets-release.cmake,sha256=zmHEMsi4kvj04bKXZcDXBGB98gMQM8yGujq2bBQMn8I,866
|
149
|
+
gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-opt/SPIRV-Tools-optTargets.cmake,sha256=CjNXDkAi9hTLVjaAq9bPHJ_armEkgd8J_uX_jz80WT4,4971
|
150
|
+
gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-reduce/SPIRV-Tools-reduceConfig.cmake,sha256=7zFj1xzP5RT6FkohmRm4KFdC8zcR-XdvdlF3_Sm-8Gw,285
|
151
|
+
gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-reduce/SPIRV-Tools-reduceTarget-release.cmake,sha256=izVCfxb76CbAZ_9To3d0ao3Kc4JzltGydMyZG2kwdKo,887
|
152
|
+
gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-reduce/SPIRV-Tools-reduceTarget.cmake,sha256=L3aATbP_gMEMXsCv2M2R3SQcLHDkN_Ra05XgJtj-hyQ,5019
|
153
|
+
gstaichi-2.0.0.data/data/lib/cmake/glfw3/glfw3Config.cmake,sha256=DSZvP4sK4yRATcNqjKivAbW_WNFbHOgG6eMY6JXpt1U,115
|
154
|
+
gstaichi-2.0.0.data/data/lib/cmake/glfw3/glfw3ConfigVersion.cmake,sha256=d2IEfPkbPohGWgrQLPckr9vTKqxPUUFO1ZgxVeIKwa0,2762
|
155
|
+
gstaichi-2.0.0.data/data/lib/cmake/glfw3/glfw3Targets-release.cmake,sha256=BpDZPBIm6Qs3gqDUufi-ocWC39UDWZwGtCkxm_4dB3M,789
|
156
|
+
gstaichi-2.0.0.data/data/lib/cmake/glfw3/glfw3Targets.cmake,sha256=dK8hfR7rhZKoRPumDRQPHqzqNmEaSFa1L7Ri4ie_tik,4195
|
157
|
+
gstaichi-2.0.0.data/data/share/spirv_cross_c/cmake/spirv_cross_cConfig-release.cmake,sha256=7DDeJII8Fu7nuVtqY9APJeyJQmRHOEesYb4GZB5U2Nk,852
|
158
|
+
gstaichi-2.0.0.data/data/share/spirv_cross_c/cmake/spirv_cross_cConfig.cmake,sha256=Hghnpsb7jyqriJ43FDo9rM8xJZ9V3fTEPyyar4kpRYM,5184
|
159
|
+
gstaichi-2.0.0.data/data/share/spirv_cross_core/cmake/spirv_cross_coreConfig-release.cmake,sha256=UsdH4n6NgNjTml-XU9CmWSZaSYVcCAefPWvjunerKgI,873
|
160
|
+
gstaichi-2.0.0.data/data/share/spirv_cross_core/cmake/spirv_cross_coreConfig.cmake,sha256=SVjYWo1lYL73oV06i4YcWVfj6417V6-R2iw5oTEBMIk,4145
|
161
|
+
gstaichi-2.0.0.data/data/share/spirv_cross_cpp/cmake/spirv_cross_cppConfig-release.cmake,sha256=pYi8QcsV3wckWAogPIHSycvi9CL9jUb6cpnRSl4YKI0,866
|
162
|
+
gstaichi-2.0.0.data/data/share/spirv_cross_cpp/cmake/spirv_cross_cppConfig.cmake,sha256=OW25x5am_T88hrS4Ad3GfKFgCmL0RYQOb-ICwlZd8SE,4992
|
163
|
+
gstaichi-2.0.0.data/data/share/spirv_cross_glsl/cmake/spirv_cross_glslConfig-release.cmake,sha256=N-qk5YvM_c0SxKtwE3eFkpt85Rsna_WBiziGedJXsgg,873
|
164
|
+
gstaichi-2.0.0.data/data/share/spirv_cross_glsl/cmake/spirv_cross_glslConfig.cmake,sha256=pk-o4Ad1jJdLXREPCkcaAoqLJMhDWGGONA5GUSYB5Oo,4997
|
165
|
+
gstaichi-2.0.0.data/data/share/spirv_cross_hlsl/cmake/spirv_cross_hlslConfig-release.cmake,sha256=49Uid2s5zMuu0rPuxdUttbXqVpys5JNo5iTPu-g3pcM,873
|
166
|
+
gstaichi-2.0.0.data/data/share/spirv_cross_hlsl/cmake/spirv_cross_hlslConfig.cmake,sha256=3FUp-uxkYPr2s2E-NFi1_RJSIilktszr0H1Nt_f4Jtw,4997
|
167
|
+
gstaichi-2.0.0.data/data/share/spirv_cross_msl/cmake/spirv_cross_mslConfig-release.cmake,sha256=aaEvTgqXscm1VxqHppZaHaKjrdVuZBdwenembdtUKSc,866
|
168
|
+
gstaichi-2.0.0.data/data/share/spirv_cross_msl/cmake/spirv_cross_mslConfig.cmake,sha256=LQ7qHYk4h7buccDVzPckmHVezUqCGoyqbEnrYy_UeU0,4992
|
169
|
+
gstaichi-2.0.0.data/data/share/spirv_cross_reflect/cmake/spirv_cross_reflectConfig-release.cmake,sha256=pd1hm0LV2XXMOSeMdOm8p7WC70lIe--0tsZRbFivahA,894
|
170
|
+
gstaichi-2.0.0.data/data/share/spirv_cross_reflect/cmake/spirv_cross_reflectConfig.cmake,sha256=RU7YyZWYefRWl0Nf3cmwX6YaMbmbJdh-xMTReb2gihs,4160
|
171
|
+
gstaichi-2.0.0.data/data/share/spirv_cross_util/cmake/spirv_cross_utilConfig-release.cmake,sha256=Lfo9_3aEg1ucY0bYHahk7qv_6LqKxanxKO42bNDUmGo,873
|
172
|
+
gstaichi-2.0.0.data/data/share/spirv_cross_util/cmake/spirv_cross_utilConfig.cmake,sha256=ndic8GTSOmp0tv6meX-YQwxEgmCx78aAf0s9d1KwTDU,4997
|
173
|
+
gstaichi-2.0.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
174
|
+
gstaichi-2.0.0.dist-info/METADATA,sha256=X0874X3hQzbBhUUYBOEplfAFuWAcR7mcEnnq9yp0b3Y,4686
|
175
|
+
gstaichi-2.0.0.dist-info/WHEEL,sha256=Z_neHFi1AXQw_xnYOOQB9Iktc_z9wsHFxr1PYQMogdw,109
|
176
|
+
gstaichi-2.0.0.dist-info/top_level.txt,sha256=BoKkPzj6Sfycl5Ge5sB9QRDVZvFB5R0sxbZn4YNPb80,9
|
177
|
+
gstaichi-2.0.0.dist-info/RECORD,,
|