You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi! Is there a way that I can have a list of integers inside a kernel representing pointers to array data of known sizes?
Curretly I am working with big image arrays of different sizes that barely fit in memory, and thus I can not copy them into some sort of contiguous array due to copy delays and memory space. Moreover, I will be loading and unloading these images in a dynamic way. I would like to use taichi for processing, but currently I have not found a way to declare inside a taichi kernel that an ineger is an array pointer. Which image I am going to access will depend on computation, and will vary from iteration to iteration inside the same kernel. What I wanted to achive is something like the following:
image0=ti.ndarray(...) # 10000 x 10000 imageimage1=ti.ndarray(...) # 10000 x 10000 imageimage2=ti.ndarray(...) # 10000 x 10000 imageimage_source=ti.ndarray(...) # 10000 x 10000 image@ti.kerneldefkn(image_src, image_trgts, image_trgts_shape):
h=image_src.shape[0]
w=image_src.shape[1]
foriinrange(h):
forjinrange(w):
target_image_index= (...) # target image index will depend on some computation for the current image pixeltarget_x= (...) # target image coordinates will depend on some other computationtarget_y= (...) # target image coordinates will depend on some other computation# get the sape of target image from the shapes arraytgt_h=image_trgts_shape[target_image, 0]
tgt_w=image_trgts_shape[target_image, 1]
# declare the array for the target image that I want to accesstarget=ti.ndarray(pointer=image_trgts[target_image], shape=(tgt_h, tgt_w, 3))
pixel_r=target[target_y, target_x, 0]
pixel_g=target[target_y, target_x, 1]
pixel_b=target[target_y, target_x, 2]
# finally work with target image pixel
(...)
The real computation has plenty more steps, however this example outlines the issue.
Thank you in advance
The text was updated successfully, but these errors were encountered:
Hi! Is there a way that I can have a list of integers inside a kernel representing pointers to array data of known sizes?
Curretly I am working with big image arrays of different sizes that barely fit in memory, and thus I can not copy them into some sort of contiguous array due to copy delays and memory space. Moreover, I will be loading and unloading these images in a dynamic way. I would like to use taichi for processing, but currently I have not found a way to declare inside a taichi kernel that an ineger is an array pointer. Which image I am going to access will depend on computation, and will vary from iteration to iteration inside the same kernel. What I wanted to achive is something like the following:
The real computation has plenty more steps, however this example outlines the issue.
Thank you in advance
The text was updated successfully, but these errors were encountered: