
HDF5 and netCDF are I/O libraries tailored for reading and writing structured data (e.g., multi-dimensional arrays) to a file system. On KIDS, CUDA Toolkits for all installed versions are found under /sw/keeneland/cuda/ version/linux_binary, where version is something like 4.0. These libraries are produced by NVIDIA and included with the CUDA Toolkit.

NPP is a library that provides CUDA-based implementations of useful video, image, and signal processing operations. Because the routines in cuBLAS provide the well-defined BLAS interface, programs that are currently using a CPU-based BLAS library can be re-linked against CUBLAS to execute on CUDA GPUs.ĬuSPARSE is a GPU-accelerated library that provides CUDA-based implementations of common sparse matrix operations.ĬuRAND is a GPU-accelerated library for producing streams of pseudo-random numbers. On KIDS, CUDA Toolkits for all installed versions are found under /sw/keeneland/cuda/ version/linux_binary, where version is something like 4.0.ĬuBLAS is a library that provides CUDA-based implementations of many of the Basic Lineary Algebra Subprograms (BLAS). Beginning with CUDA 4.0, Thrust is included with the CUDA Toolkit. Thrust::copy(dvec.begin(), dvec.end(), hvec.begin()) Once there, the data can be manipulated by applying concise Thrust algorithms (a sort, in this case).įinally, the transformed data can be brought back to host memory with another concise Thrust operation. Thrust::generate(hvec.begin(), hvec.end(), rand)
#Nvidia cuda toolkit libraries code
Thrust containers also implement automatic memory allocation/deallocation.įor example, the following code fragment allocates a vector of integers in host memory, initializes it to random values, and then transfers it to a vector in the GPU's memory. In fact, Thrust containers are compatible with STL containers. In that respect, Thrust is similar to the C++ Standard Template Library (STL) that provides containers and algorithms implemented for CPUs. In particular, it provides implementations of data containers such as vectors, and algorithms that operate on data in those containers such as sort and reduction. Thrust is a C++ template library that provides implementations of several data structures and algorithms that run on CUDA-capable GPUs. This page does not describe all libraries available on KIDS, so please check the /sw/keeneland directory to see what other libraries and tools are available.
#Nvidia cuda toolkit libraries software
It focuses on third-party libraries see for information about software being developed by the Keeneland team. This page highlights several of these libraries. KIDS also provides libraries for parallel I/O support.


In addition to those typically used for developing on a traditional Linux system (commonly in /lib64 or /usr/lib64, with headers under /usr/include), KIDS provides libraries that implement numerical and data management operations using both GPUs and CPUs. But - it isn't, and it wasn't: On a system in which CUDA is installed using OS distribution packages, under /usr directly, my command doesn't work.There are many useful libraries available on the Keeneland Initial Delivery System (KIDS). I used a find_library() command which I thought should be sufficient, and all was well. On a previous system, I had it under /usr/local/cuda/lib64. This project requires the nVIDIA Toolkit Extensions library. I'm using CMake 3.13, with inherent support for CUDA as a language, to build a project.
