일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 통계
- nodeJS
- MongoDB
- 데이터 과학
- 딥러닝
- 우리들교회
- openCV
- 김양재 목사
- Artificial Intelligence
- node.js
- R
- c++
- data science
- 몽고디비
- 확률
- probability
- 빅 데이타
- 주일설교
- Big Data
- Machine Learning
- 김양재 목사님
- 인공지능
- WebGL
- Statistics
- 빅 데이터
- 빅데이타
- No SQL
- 빅데이터
- 김양재
- Deep learning
- Today
- Total
목록cuda (13)
Scientific Computing & Data Science
Written by Geol Choi | Oct. 01, 2017 이번 포스팅에서는 R에서 GPU(CUDA)가 지원되는 TensorFlow 실행환경을 구축하는 방법에 대하여 알아보겠습니다. 수많은 삽질(?)을 한 끝에 알아낸 나름의 방법인데 정답인지는 모르겠습니다. 다만 이 방법으로 실행환경을 설정하면 확실히 R에서 GPU가 지원되는 TensorFlow를 활용할 수 있을 것입니다.설치환경Windows 7 OS 환경에서 설치방법을 설명하겠지만, Mac OS나 Linux 계열에서도 비슷한 방법으로 설치가 가능하리라 생각됩니다. 필자의 설치환경은 다음과 같습니다:OS: Windows 7 64bit그래픽스 카드: Nvidia GeForce GTC 750TiR: 3.4.2 (Short Summer) - 이 글을 ..
들어가기에 앞서...GPU(그래픽 처리 장치)는 최근 많은 계산이 요구되는 작업을 해야 하는 경우에 대해 더욱 인기를 얻고 있다. 이러한 장점에도, R에서의 GPU의 사용은 매우 제한되어 있었다. 불가능한 것이 아님에도 저수준 인터페이스 작업에 익숙하지 않은 프로그래머들에게 OpenCL이나 CUDA는 어렵다. 복잡한 GPGPU 코드를 추상화하는 R의 고수준 프로그래밍에 대한 바인딩을 생성하는 것은 R 유저들에게 GPU를 쉽게 활용할 수 있는 길을 열어준다. 이에 대한 핵심 아이디어를 제공하는 것이 gpuR 패키지이다. gpuR은 다음 세 가지 기발한 측면이 있다:'모든' GPU에 대해 적용이 가능하다.CUDA/OpenCL을 추상화하여 기존의 R 알고리즘에 쉽게 통합할 수 있다.객체가 GPU에서 지속 될 ..
CUDA 프로그래밍을 하다보면 2차원 또는 3차원의 Grid, Block 메모리 구조를 1차원의 배열 인덱스로 변환해야 할 경우가 있다.예를 들어 다음과 같이 block과 thread 메모리 공간을 할당할 수 있다. dim3 blocks( GridDimX, GridDimY ); dim3 threads( BlockDimX, BlockDimY ); blocks는 Grid 내의 block 메모리 공간의 차원을 정의하며, threads는 Block 내의 thread 메모리 공간의 차원을 정의한다.두 개 모두 기본적으로는 3차원의 구조를 가지고 있으며, Z에 대한 차원이 정의되지 않은 경우 Z의 차원은 1로 정의된다.즉, GrdiDimZ = 1, BlockDimZ = 1이다. 다음과 같이 kernel 함수를 정의..
이번 포스팅에서는 OpenCV의 CUDA 라이브러리 함수를 이용하여 Canny Edge Detector에 대한 연산 성능을 비교해 보도록 하겠습니다. 연산에 사용할 이미지는 Pixar Animation의 Up의 포스터입니다. 1. CPU[Example Code] 12345678910111213141516171819202122232425#include #include "opencv2/opencv.hpp" using namespace cv; int main( int argc, _TCHAR* argv[] ){ const int64 start = getTickCount(); cv::Mat src = cv::imread( "up.jpg", 0 ); if( !src.data ) exit( 1 ); cv::Mat d..
OpenCV의 cuda::DeviceInfo() 함수를 이용하여 각자의 CUDA Device의 정보를 출력하는 소스는 다음과 같습니다:Example Code12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914..
이번 글에서는 CUDA를 이용하여 열전달 시뮬레이션을 병렬로 계산하는 예제에 대하여 다루도록 하겠다. J. Sanders와 E. Kandrot의 CUDA by Example의 Chapter 7. Texture Memory 를 참고하여 재구성하였으며, 좀 더 심도있는 설명을 하기 위해 노력하였다. [실행환경] OS: Microsoft Windows 7 Professional 64 CUDA: 7.0 IDE: Microsoft Visual Studio 2012 Include: book.h, cpu_anim.h 1. Texture Memory Overview Texture memory는 constant memory와 마찬가지로 온-칩(on-chip)에 캐시(cache)된다. 따라서 오프-칩(off-chip) D..
[VectorAdd.cu]#include "cuda_runtime.h" #include "device_launch_parameters.h" #include #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 fo..
개발환경MS Windows 7 x64MS Visual Studio 2012nVidia CUDA 6.5 1. FILE > New > Project 2. New Project > Templates > NVIDIA > CUDA 6.5 3. CUDA 6.5 Runtime 4. Project Name: DeviceInfo 5. kernel.cu 코드 내용 삭제 6. 다음과 같이 코드 입력#include int main() { cudaDeviceProp prop; int count; cudaGetDeviceCount( &count ); for (int i=0; i< count; i++) { cudaGetDeviceProperties( &prop, i ); printf( " --- General Information..
현재 CUDA 샘플 코드 프로젝트가 지원하는 Microsoft의 통합 개발환경 툴인 Visual Studio의 버전은 2008, 2010, 2012 세 가지를 지원한다.샘플 프로젝트를 2008과 2010에서 열어 빌드하면 아무 에러가 발생하지 않는데 2012에서 열어 빌드하면 다음과 같은 에러가 발생할 것이다:1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\BuildCustomizations\CUDA 6.0.targets(511,9): error : The Visual Studio 2013 platform toolset is not currently supported. Please change the Platform Toolset property in..
This is one of our researches done in CJ POWERCAST, which is dedicated from the members of our team, T.J. Kwak and J.M. Park and G.Choi. INTORUDUCTIONGPU (Graphics Process Unit) has been traditionally used only for display of graphical contents with graphics acceleration. Because of the characteristics of display that represent pixels as a massive array, memory and processing architectures of GP..