전체 글52 OpenCL 기초 공부(2) 프로그램 분할 방법 1. 데이터 병렬2. 테스크 병렬 이 둘의 차이점은 같은 커널을 사용하는가(데이터 병렬) 아니면 다른 커널을 사용하는가(테스크 병렬)이다. 함수 설명clEnqueueNDRangeKernel() - 데이터 병렬로 커널을 실행한다. clEnqueueTask() - 테스크 병렬로 커널 실행한다. clEnqueuReadBuffer() - 병렬로 메모리를 읽는다.clEnqueuWriteBuffer() - 병렬로 메모리를 쓴다. 태스크 병렬과 이벤트 오브젝트 커맨드 큐에 전달한 태스크는 기본적으로 병렬 실행된다. (의존 관계가 있는 태스크끼리는 병렬 실행하면 안된다.)따라서 OpenCL에서는 이벤트 오브젝트를 사용해 태스크의 실행 순서를 지정한다. 이벤트 오브젝트 : 커맨드 큐에 전달한 명령의 .. 2014. 7. 30. CUDA , gpgpu GPGPU : GPU는 CPU에 비해 게임할때 빼고는 적당히 놀고있다. 이 노는 놈이 잘하는 것은 수학연산.적당히 노는놈을 일시켜서 수학연산등을 시키는걸 쉽게말해 GPGPU라고 한다. CUDA : GPGPU 프로그램을 작성하려면 귀찮은 준비 작업들이 많다. 그래서 이런거 할 필요없이 NVIDIA에서 CUDA로 짜라고 던져준 것. 근데 난 CUDA를 사용못한다. 왜냐면 모바일에서 돌릴거라... 2014. 7. 22. srand함수 #include #include #include // time함수를 사용하기 위해서 선언 int main() { int nNum = 1; // 항상 다른 seed값을 넣어주기 위해 time함수를 인자로 넣어준다. srand((unsigned int)time(NULL)); for(int nCount = 0; nCount < 3; ++nCount) { int nRandom = rand() % 100; printf("[%d] %d\n", nNum, nRandom); nNum++; } return 0; }[출처] [C언어] rand , srand 함수|작성자 구렁이 2014. 7. 22. OpenCL 설치 및 개발 CUDA를 사용하기 위해서는 NVIDIA 계열의 GPU가 필요하다. 멤버십에 있는 DESKTOP은 NVIDIA 계열의 GPU가 장착되어 있어서 검색을 하다 보니 intel SDK라는것을 알게 되었다. CUDA가 설치 되어 있으면 OpenCL을 사용할 수 있다. 그러나 OpenCL 프로젝트를 만들때 경로를 추가해주어야 하는 불편함이 존재한다. 그래서 !! intel SDK는 그런 설정 필요없이 바로 작업이 가능하게 된다고 하여 기쁜 마음에 설치를 했다. GPU도 NVIDIA 계열이라 문제될것이 없을거라 생각했다. 주소는 아래와 같다.http://software.intel.com/en-us/vcsource/tools/opencl-sdk 설치를 하고 프로젝트 생성 시 좌측의 템플릿 탭을 확인하면 OpenCL이.. 2014. 7. 22. 이전 1 ··· 7 8 9 10 11 12 13 다음