본문 바로가기

Houkibosi☆

GPU 아키텍처 렌더링3D모델로부터 이미지를 생성하는 과정3D모델링 - 객체의 삼차원 표현을 수학적 표현으로 생성하는 과정 - 폴리곤 또는 삼각 OpenGL2D와 3D 그레픽 라이브러리멀티플렛폼 APISGI가 1992년에 개발 셰이더 ( Shaders ) - GPU 상에서 동작하는 컴퓨터 프로그램- 렌더링 파이프라인의 프로그래밍 가능한 단계 중 하나를 수행 셰이더 코어 ( Shader Cores )- 매우 간단하고 프로그래밍 가능함- 단일 명령 스트림을 빠르게 수행하기 위한 하드췌어 구성요소가 없음- 논리 그레픽 파이프라인 (Logic graphics pipline ) 대규모 병렬 처리 이용 ( Exploiting Massive Parallelism )스트리밍 멀티 프로세서 ( Streaming multiprocesso.. 더보기
이종 컴퓨팅과 OpenCL 이종 컴퓨팅 ( Heterogeneous Computing )이종 아키텍처 - CPU + 성능 가속기( Accelerators ) - GPGPU, Intel Xeon Phi 등등... - 하이브리드 프로세서 - 인텔 샌디브릿지, AMD 퓨전 등등 - 모든 컴퓨팅 도메인에서 사용 - 모바일 디바이스 ~ 슈퍼 컴퓨터 - 하드웨어 가속기가 계산이 많은 코드의 성능을 향상 소프트웨어 개발자의 역활 - 성능을 높이기 위해 이종 하키텍처를 최대한 활용 왜 이종시스템이 좋은가?가정 - 실행시간의 40%를 차지하는 순차(sequential)코드는 하나의 가속기 코어에 의해 가속 가능 - 하나의 큰 코어는 순차 코드를 두 배 빠르게 실행 ( 8개의 작은 코어가 차지하는 트랜지스터를 소비 ) 이종 아키텍처동종 멀티코어 아.. 더보기
필기 work item - PE(processing Element)-> get_global_id(0)-> get_local_id(0) work grup - CU ( compute Unit )- size = local work size(lws) -> 3차원까지-> 몇 개의 워크 아이템을 가지고 있나-> get_local_size(0) -> 3차원까지 가능 - get_group_id(0)- get_num_groups(0) index space =NDRange=> size -> global_work_size(gws)-> (k)get_global_size(0) wrap - GPU가 한 번에 실행하는 work item 개수 더보기
리눅스 채팅 http://se.uzoogom.com/67 더보기
호스트 프로그램의 구조 int main(){cl_platform_id* cl_device_type cl_device_id cl_context cl_command_queue cl_programcl_kernelcl_mem cl_int err;cl_uint num_platforms;cl_uint num_dev=0; // 플랫폼 ID 얻기 (Device 확인, 정보 가져오기) cl_int clGetPlatformIDs( cl_uint num_entries, (플랫폼 수) cl_platform_id *platforms, (플랫폼 정보를 담을 구조체 리스트) cl_uint *num_platforms) (플랫폼 갯수를 담을 변수) // 플랫폼 정보 언기cl_int clGetPlatformInfo( cl_platform_id platform.. 더보기
Hello OpenCL // int val[2] = {1,2}를 입력으로 받아서 val = { 2,1 } 로 값을 변환하여 주는 예제프로그램이다.// test platform : Visual Studio 2008 + ati stream sdk beta2.0 #include #include #include // error check macro : utility#define CHECK_CL_ERROR(retcode, msg, exit_label) { \if (retcode != CL_SUCCESS) { \printf(msg); printf("\n"); \goto exit_label; \}\} int main(){cl_int input[2]= {1, 2}; cl_int output[2]= {}; cl_contextcontext = .. 더보기
데이터 형 OpenCL은 C언어를 기반으로 하는 기술이기 떄문에C언어에서 벡터화가 추가되는 정도이다.컴파일은 C99를 기반으로 하고있다. I. 스칼라 데이터형 OpenCL Type API Type Description bool true (1) or false (0) char cl_char 8-bit signed unsigned char, uchar cl_uchar 8-bit unsigned short cl_short 16-bit signed unsigned short, ushort cl_ushort 16-bit unsigned int cl_int 32-bit signed unsigned int, uint cl_uint 32-bit unsigned long cl_long 64-bit signed unsigned lo.. 더보기
OpenCL이란? 더보기
스터디문제 4 2013.10 02 수요일 스터디 출제자 민호1. 컴파일러를 통해 코드내 특정영역을 멀티 쓰레드로 돌아가게 하는 것은 무엇인가? 2.~4 까지의 문제는 openMP 의 기초 API 에 관한 설명이다.2.뒤에 이어오는 중괄호로 묶인 영역을 멀티 쓰레드로 수행하며 기본값으로 OS가 인식하는코어 개수만큼 쓰레드를 생성하는 것은? 3parallel하게 수행되는 영역에서 몇개의 쓰레드를 사용할것인지 설정하는 것은? 4.open MP의 구성은 어떻게 되어있는가? 5.다음 OPENMP 소스 예제에서 빠진 부분은#includeint main{ ( )int tid = omp_get_thread_num()printf("%d : Hello, world!\n" , tid); return 0;} 더보기
스터디문제3 1. worksharing construct의 종류를 나열하시오- #pragma omp ( for )- #pragma omp ( sections )- #pragma omp ( single ) 2.속칭 숨겨진 베리어(barrier)를 없애기 위한 clause는 ( nowait ) 이라 한다. 이는 worksharing construct 의 뒤에 붙는다. 3.다음은 openmp의 동기화 방법들이다. 빈칸을 채우라.- 상호배제 : #pragma omp critical- 배리어 : #pragma omp barrier- ( atomic ) 명령 : #pragma omp barrier- 기타 : #pragma omp ordered 4. 다음과 같을때 #pragma omp parallel forfor(i = 0; i 더보기