LVCUDA
- Updated2023-02-21
- 3 minute(s) read
Owning Palette: GPU Analysis VIs
Requires: GPU Analysis Toolkit. This topic might not match its corresponding palette in LabVIEW depending on your operating system, licensed product(s), and target.
Use the LVCUDA VIs to manage NVIDIA GPU devices and their resources based on the NVIDIA CUDA Toolkit interface.
The VIs on this palette can return general LabVIEW error codes and GPU Analysis error codes.
| Palette Object | Description |
|---|---|
| Allocate Memory | Acquires memory, in the form of a buffer, from the device. |
| Copy Data | Transfers copies of data between arrays in memory blocks on the device. If the array you want to copy and the device memory store different amounts of data, this VI limits the transfer to the smaller of the two amounts. |
| Download Data | Transfers data from a 1D or 2D array to memory, in the form of a buffer, on the device. If the array and the memory on the device store different amounts of data, this VI limits the transfer to the smaller of the two amounts. Wire data to the src in or dst in input to determine the polymorphic instance to use. |
| Free Memory | Releases the memory, or buffer, on the device that stores data. Wire data to the CUDA U8 Device Ptr input to determine the polymorphic instance to use. |
| Get Device | Retrieves the device ID for the device context you provide. |
| Get Device Properties | Retrieves the properties for a device using the device ID you provide. Device properties can include such properties as the device name, the amount of memory, the number of threads, and the device version. |
| Get Version Information | Returns the version information for the CUDA Runtime API, the CUDA Driver API, and the CUDA Toolkit that built the GPU Analysis Toolkit. |
| Initialize Device | Creates the special execution environment, or context, necessary for LabVIEW to communicate with the GPU. |
| Initialize Memory | Sets each byte of each element in memory on the device. This VI sets each byte up to the number of elements provided. |
| Release Device | Frees the device context and any resources allocated since initialization, including resources for communication with the device and any active processes on the device that began after initialization. This VI halts all computations in the context. |
| Synchronize Device | Waits for all operations running on the device to finish. If any operation fails during synchronization, this VI returns an error. This VI accepts a CUDA device pointer, CUDA context, CUFFT handle, CUBLAS handle. |
| Upload Data | Transfers data from memory on the device, in the form of a buffer, to a 1D or 2D LabVIEW array. If the array and the device memory store different amounts of data, this VI limits the transfer to the smaller of the two amounts. Wire data to the dst in or src in input to determine the polymorphic instance to use. |
| Subpalette | Description |
|---|---|
| LVCUDA Driver API | Use the LVCUDA Driver API VIs with the LVCUDA SDK VIs to build wrappers for custom GPU VIs. For more information about how to use the LVCUDA SDK and LVGPU SDK VIs, refer to the KnowledgeBase article Customizing GPU Computing Using the GPU Analysis Toolkit at ni.com. |
| LVCUDA SDK | Use the LVCUDA SDK to build wrappers for custom GPU VIs. For more information about how to use the LVCUDA SDK and LVGPU SDK VIs, refer to the KnowledgeBase article Customizing GPU Computing Using the GPU Analysis Toolkit at ni.com. |