Parallel 썸네일형 리스트형 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개의 작은 코어가 차지하는 트랜지스터를 소비 ) 이종 아키텍처동종 멀티코어 아.. 더보기 호스트 프로그램의 구조 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이란? 더보기 [스터디]OpenMP Parallel for 대부분의 병렬화 패턴은 루프를 병렬화하는 것 루프 병렬화 페턴- 사용할 쓰레드 개수를 설정- pthread의 경우 pthread_create를 여러번 호출- num_threads directive - ★ 루프의 범위를 각 쓰레드에게 적절하게 배분 - 쓰레드는 각자 배분받은 할당량을 처리 - 쓰레드별로 처리한 작업을 한 곳에 모아서 정리 및 통합 이런 방식으로 루프 병렬화를 하게 되고, 특히 작업을 배분하는 일이 필수적으로 중요하다.하지만 이 작업은 번거롭고 어려운 작업이기 떄문에 시스템에서 이를 지원해주고,그것이 바로 Parallel for이다. #pragma omp parallel + #pragma omp for Static scheduling - Parallel for가 병렬화를 해주는 함수인만큼 일.. 더보기 찾은 자료들 http://en.wikipedia.org/wiki/Test-and-set http://m.dbguide.net/knowledge.db?cmd=view&boardConfigUid=19&boardUid=152316 http://ko.wikipedia.org/wiki/%EC%9E%84%EA%B3%84_%EA%B5%AC%EC%97%AD http://en.wikipedia.org/wiki/Spinlock http://blog.naver.com/PostView.nhn?blogId=yyg1368&logNo=60133065700&categoryNo=40&viewDate=¤tPage=1&listtype=0 http://blog.naver.com/PostView.nhn?blogId=hermet&logNo=11.. 더보기 캐시 지역성의 원칙- 최근 사용된 데이터 또는 명령어가 재사용되거나 근접한 데이터 또는 명령어가 재사용 됨 -> 예측 가능- 시간적 지역성(temporal locality)- 최근에 접근한 데이터는 조만간 다시 접근할 가능성이 높음- 상대적으로 작은 시간 이내에 접근 가능- 공간적 지역성(spatial locality)- 가까운 위치에 있는 데이터는 함께 접근 될 가능성이 높음- 상대적으로 가깝고 작은 시간 이내에 접근 가능 데이터- 공간의 지역성- 배열 요소(A[i])를 연속하여 접근 - 시각적 지역성- 각 이터레이션마다 sum을 접근 코드- 시간적 지역성- 명령어들을 순서대로 접근- 공간적 지역성- 루프를 반복적으로 접근 메모리 계층- 저장소의 계층적 배열- 접근의 지역성을 이용- 빠르게 저장하는 기술- .. 더보기 숙제 P274P278 록프리, 세마포어 시간차이.P282 더보기 이전 1 2 다음