tvm-clj.device
Operations on a device. Devices, such as a GPU, need to be addressed independently and once you have a device you can allocate a tensor on that device.
- Device types are keywords:
#{:cpu :cuda :opencl} - Device ids are integers starting from zero.
copy-tensor!
(copy-tensor! src-tens dest-tens stream)(copy-tensor! src-tens dest-tens)Copy a src tensor to a destination tensor.
cpu->device
(cpu->device tensor device-type device-id {:keys [stream], :as options})(cpu->device tensor device-type device-id)Ensure a tensor is on a device copying if necessary.
device->cpu
(device->cpu dev-tens {:keys [stream unsynchronized?]})(device->cpu dev-tens)Ensure a tensor is on a device copying if necessary.
device-tensor
(device-tensor shape datatype device-type device-id options)(device-tensor shape datatype device-type device-id)(device-tensor src-tens-prototype device-type device-id)Allocate a device tensor.
sync-with-host
(sync-with-host device-type device-id)Synchonize the device stream with the host