일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 김양재 목사
- 김양재 목사님
- 확률
- Deep learning
- Machine Learning
- c++
- 인공지능
- probability
- 몽고디비
- openCV
- Big Data
- WebGL
- 통계
- 김양재
- data science
- node.js
- 빅 데이타
- 빅데이터
- nodeJS
- 데이터 과학
- Statistics
- MongoDB
- 주일설교
- Artificial Intelligence
- 빅 데이터
- 딥러닝
- 우리들교회
- No SQL
- 빅데이타
- R
Archives
- Today
- Total
Scientific Computing & Data Science
[CUDA] Vector Add 예제 2. 본문
[VectorAdd.cu]
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include <stdio.h>
#define arraySize 1000
__global__ void addKernel( int *c, const int *a, const int *b )
{
int i = threadIdx.x;
if( i < arraySize )
c[i] = a[i] + b[i];
}
int main()
{
int a[arraySize];
int b[arraySize];
int c[arraySize];
int *dev_a = 0;
int *dev_b = 0;
int *dev_c = 0;
// fill the arrays 'a' and 'b' on the CPU
for( int i = 0 ; i < arraySize ; i++ ) {
a[i] = i;
b[i] = i;
}
// Add vectors in parallel.
// Allocate GPU buffers for three vectors (two input, one output)
cudaMalloc((void**)&dev_c, arraySize * sizeof(int));
cudaMalloc((void**)&dev_a, arraySize * sizeof(int));
cudaMalloc((void**)&dev_b, arraySize * sizeof(int));
// copy the arrays 'a' and 'b' to the GPU
cudaMemcpy(dev_a, a, arraySize * sizeof(int), cudaMemcpyHostToDevice);
cudaMemcpy(dev_b, b, arraySize * sizeof(int), cudaMemcpyHostToDevice);
addKernel<<<1, arraySize>>>(dev_c, dev_a, dev_b);
cudaDeviceSynchronize();
// copy the array 'c' back from the GPU to the CPU
cudaMemcpy(c, dev_c, arraySize * sizeof(int), cudaMemcpyDeviceToHost);
// display the results
for( int i = 0 ; i < arraySize ; i++ ) {
printf( "%d + %d = %d\n", a[i], b[i], c[i] );
}
// free the memory allocated on the GPU
cudaFree(dev_c);
cudaFree(dev_a);
cudaFree(dev_b);
return 0;
}
'Scientific Computing > NVIDIA CUDA' 카테고리의 다른 글
[Programming / NVIDIA CUDA] 1D 배열 인덱스 변환 (1) | 2016.06.06 |
---|---|
[CUDA] Simulating Heat Transfer (1) | 2015.08.04 |
[CUDA] 자신의 GPU 카드의 Device 정보 출력하기 (0) | 2014.12.22 |
[CUDA] Tip / Visual Studio V11 (2012)에서 Platform Toolset 에러 발생 시 대처법 (0) | 2014.06.11 |
[GPU 기술] CUDA를 활용한 실시간 유체 시뮬레이션 구현 (0) | 2014.04.06 |
Comments