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
VUDA is a header-only library based on Vulkan that provides a CUDA Runtime API interface for writing GPU-accelerated applications.
Documentation
VUDA is based on the Vulkan API. The functionality of VUDA conforms (as much as possible) to the specification of the CUDA runtime. For normal usage consult the reference guide for the NVIDIA CUDA Runtime API, otherwise check the VUDA wiki:
All VUDA functionality can be accessed by including vuda.hpp and using its namespace vuda::.
Alternatively, one can utilize vuda_runtime.hpp which wraps and redirect all CUDA functionality.
#if defined(__NVCC__)
#include<cuda_runtime.h>
#else
#include<vuda_runtime.hpp>
#endifintmain(void)
{
// assign a device to the threadcudaSetDevice(0);
// allocate memory on the deviceconstint N = 5000;
int a[N], b[N], c[N];
for(int i = 0; i < N; ++i)
{
a[i] = -i;
b[i] = i * i;
}
int *dev_a, *dev_b, *dev_c;
cudaMalloc((void**)&dev_a, N * sizeof(int));
cudaMalloc((void**)&dev_b, N * sizeof(int));
cudaMalloc((void**)&dev_c, N * sizeof(int));
// copy the arrays a and b to the devicecudaMemcpy(dev_a, a, N * sizeof(int), cudaMemcpyHostToDevice);
cudaMemcpy(dev_b, b, N * sizeof(int), cudaMemcpyHostToDevice);
// run kernel (vulkan shader module)constint blocks = 128;
constint threads = 128;
#if defined(__NVCC__)
add<<<blocks, threads>>>(dev_a, dev_b, dev_c, N);
#elseconstint stream_id = 0;
vuda::launchKernel("add.spv", "main", stream_id, blocks, threads, dev_a, dev_b, dev_c, N);
#endif// copy result to hostcudaMemcpy(c, dev_c, N * sizeof(int), cudaMemcpyDeviceToHost);
// do something useful with the result in array c ... // free memory on devicecudaFree(dev_a);
cudaFree(dev_b);
cudaFree(dev_c);
}
About
VUDA is a header-only library based on Vulkan that provides a CUDA Runtime API interface for writing GPU-accelerated applications.