What is the size of GPU memory on the TK1? Or, does it share memory with the CPU? If it shares memory, does that mean there’s no need to copy between host and device?
Does anybody know if OpenCV naturally uses Zero Copy when avaliable?
Id not, how can I modify my existing OpenCV GPU code to work with Zero Copy?
It goes something like this:
gpu::Mat src_gpu, dst_gpu
Mat src_host, dst_host
//..
src_gpu.Upload(src_host);
//Some gpu operations here
dst_gpu.Download(dst_host);
ZeroCopy is available on most discrete systems in addition to TK1 (the difference being on the discrete systems, the GPU transparently goes out over PCIe to access the memory in system RAM). Due to the latency from PCIe, ZeroCopy is only used in certain situations on discrete architectures. Hence OpenCV doesn’t automatically use ZeroCopy everytime it’s available.