本範例使用 constant memory,進行兩個整數的相加:
#include<stdio.h> #include<time.h> #include<stdlib.h> __constant__ int const_gpu_a[2]; __global__ static void vecSum(int *sum){ *sum = const_gpu_a[0] + const_gpu_a[1]; } int main(int argc,char **argv) { int s, *gpu_s; int a[2] = {1, 1}; cudaMalloc((void**)&gpu_s, sizeof(int) * 1); cudaMemcpyToSymbol(const_gpu_a, a, sizeof(int) * 2); vecSum<<<1, 1>>>(gpu_s); cudaThreadSynchronize(); cudaMemcpy(&s, gpu_s, sizeof(int) * 1, cudaMemcpyDeviceToHost); printf("sum: %d\n", s); return 0; }