CUDA Additionof2Vector
CUDA Additionof2Vector
#include <stdio.h>
#include <stdlib.h>
#include <cuda_runtime.h>
int main() {
int n = 1000000;
int *a, *b, *c;
int *d_a, *d_b, *d_c;
int size = n * sizeof(int);
// Initialize vectors
for (int i = 0; i < n; i++) {
a[i] = i;
b[i] = i;
}
// Launch kernel
int blockSize = 256;
int gridSize = (n + blockSize - 1) / blockSize;
vectorAdd<<<gridSize, blockSize>>>(d_a, d_b, d_c, n);
// Verify result
for (int i = 0; i < n; i++) {
if (c[i] != 2 * i) {
printf("Error: c[%d] = %d\n", i, c[i]);
break;
}
}
// Free memory
cudaFree(d_a); cudaFree(d_b); cudaFree(d_c);
free(a); free(b); free(c);
return 0;
}
Output:
Vector addition successful!