Open zhenkun opened 3 years ago
Following are some pointers:
In this file, it shows how NumPy arrays interact with the HeteroCL/TVM arrays. https://github.com/cornell-zhang/heterocl/blob/master/python/heterocl/tvm/_ffi/ndarray.py
More specifically, this function loads NumPy arrays into HeteroCL/TVM. https://github.com/cornell-zhang/heterocl/blob/83a4c11f434b672b82c73d42324f7a75c2ebd56f/python/heterocl/tvm/_ffi/ndarray.py#L157
And this function loads HeteroCL/TVM array into NumPy arrays. https://github.com/cornell-zhang/heterocl/blob/83a4c11f434b672b82c73d42324f7a75c2ebd56f/python/heterocl/tvm/_ffi/ndarray.py#L225
This is where we handle the array data copy. https://github.com/cornell-zhang/heterocl/blob/83a4c11f434b672b82c73d42324f7a75c2ebd56f/tvm/src/runtime/c_runtime_api.cc#L415
So there'd be no problem if we just want to copy the NumPy data into HeteroCL (though we need to know the size to copy first, for sure). The problem is, how do we decode that at the LLVM level.
will result in:
numpy seems to support large integers: