diff --git a/python/jittor/extern/acl/acl_compiler.py b/python/jittor/extern/acl/acl_compiler.py index 92fb816e..218a51a2 100644 --- a/python/jittor/extern/acl/acl_compiler.py +++ b/python/jittor/extern/acl/acl_compiler.py @@ -20,7 +20,7 @@ def install(): global has_acl, cc_flags acl_compiler_home = os.path.dirname(__file__) cc_files = sorted(glob.glob(acl_compiler_home+"/**/*.cc", recursive=True)) - cc_flags += f" -DHAS_CUDA -DIS_ACL -I/usr/local/Ascend/runtime/include -I/usr/local/Ascend/driver/include -L/usr/local/Ascend/compiler/lib64 -L/usr/local/Ascend/runtime/lib64 -I{acl_compiler_home} -ltikc_runtime -lascendcl " + cc_flags += f" -DHAS_CUDA -DIS_ACL -I/usr/local/Ascend/latest/x86_64-linux/include/ -I/usr/local/Ascend/latest/x86_64-linux/include/acl -L/usr/local/Ascend/latest/x86_64-linux/lib64 -I/usr/local/Ascend/runtime/include -I/usr/local/Ascend/driver/include -L/usr/local/Ascend/compiler/lib64 -L/usr/local/Ascend/runtime/lib64 -I{acl_compiler_home} -ltikc_runtime -lascendcl " ctypes.CDLL("libascendcl.so", dlopen_flags) jittor_utils.LOG.i("ACL detected") diff --git a/python/jittor/src/misc/nano_vector.h b/python/jittor/src/misc/nano_vector.h index 9208ab4c..d432c048 100644 --- a/python/jittor/src/misc/nano_vector.h +++ b/python/jittor/src/misc/nano_vector.h @@ -148,6 +148,12 @@ struct NanoVector { for (auto a : v) push_back_check_overflow(a); } +#ifdef __linux__ + inline NanoVector(const vector& v) { + for (auto a : v) push_back_check_overflow((int64)a); + } +#endif + template inline static NanoVector make(const TMakeV* v, int n) { NanoVector nv; diff --git a/python/jittor/src/pyjt/py_converter.h b/python/jittor/src/pyjt/py_converter.h index ebad7554..07ae21ff 100644 --- a/python/jittor/src/pyjt/py_converter.h +++ b/python/jittor/src/pyjt/py_converter.h @@ -105,6 +105,21 @@ DEF_IS(int64, T) from_py_object(PyObject* obj) { return PyLong_AsLongLong(obj); } +#ifdef __linux__ +// int64_t +DEF_IS(int64_t, bool) is_type(PyObject* obj) { + return PyLong_CheckExact(obj); +} + +DEF_IS(int64_t, PyObject*) to_py_object(const T& a) { + return PyLong_FromLongLong(a); +} + +DEF_IS(int64_t, T) from_py_object(PyObject* obj) { + return PyLong_AsLongLong(obj); +} +#endif + // float64 DEF_IS(float64, bool) is_type(PyObject* obj) { return PyFloat_CheckExact(obj) || PyLong_CheckExact(obj);