CUDA C++第一个项目“Hello World”
程序员文章站
2022-05-08 13:36:11
...
#include <iostream>
#include <cmath>
// Kernel function to add the elements of two arrays
__global__ void add(int n, float *x, float *y) {
int index = blockIdx.x * blockDim.x + threadIdx.x;
int stride = blockDim.x * gridDim.x;
for (int i = index; i < n; i += stride) y[i] = x[i] + y[i];
}
int main() {
int N = 1 << 20;
float *x, *y;
// Allocate Unified Memory – accessible from CPU or GPU
cudaMallocManaged(&x, N * sizeof(float));
cudaMallocManaged(&y, N * sizeof(float));
// initialize x and y arrays on the host
for (int i = 0; i < N; i++) {
x[i] = 1.0f;
y[i] = 2.0f;
}
// Run kernel on 1M elements on the GPU
add<<<1, 1>>>(N, x, y);
// Wait for GPU to finish before accessing on host
cudaDeviceSynchronize();
// Check for errors (all values should be 3.0f)
float maxError = 0.0f;
for (int i = 0; i < N; i++) maxError = fmax(maxError, fabs(y[i] - 3.0f));
std::cout << "Max error: " << maxError << std::endl;
// Free memory
cudaFree(x);
cudaFree(y);
return 0;
}
上一篇: DOS下编译运行小应用程序
下一篇: 【java】Applet窗口小程序的应用
推荐阅读
-
VS2010怎么新建包含两个form的HELLO WORLD项目?
-
IntelliJ IDEA 创建spring boot 的Hello World 项目(图解)
-
VS2010怎么新建包含两个form的HELLO WORLD项目?
-
用C++写一个hello world
-
c++(001)hello world。
-
Android学习笔记(一)环境安装及第一个hello world
-
第一个Java程序示例——Hello World!
-
使用文本编辑器+命令行的方式实现Java中的第一个程序Hello World(上)
-
第一个shell程序:hello world
-
CorelDRAW VBA - 第一个Hello World程序