Course Outline

소개

  • OpenCL이란 무엇입니까?
  • OpenCL 대 CUDA 대 SYCL
  • OpenCL 기능 및 아키텍처 개요
  • 개발 환경 설정

시작하기

  • Visual Studio 코드를 사용하여 새 OpenCL 프로젝트 만들기
  • 프로젝트 구조 및 파일 탐색
  • 프로그램 컴파일 및 실행
  • printf 및 fprintf를 사용하여 출력 표시

OpenCL API

  • 호스트 프로그램에서 OpenCL API의 역할 이해
  • OpenCL API를 사용하여 장치 정보 및 기능 쿼리
  • OpenCL API를 사용하여 컨텍스트, 명령 대기열, 버퍼, 커널 및 이벤트 생성
  • OpenCL API를 사용하여 읽기, 쓰기, 복사, 매핑, 매핑 해제, 실행 및 대기와 같은 명령을 대기열에 추가
  • OpenCL API를 사용하여 오류 및 예외 처리

OpenCL ㄷ

  • 디바이스 프로그램에서 OpenCL C의 역할 이해
  • OpenCL C를 사용하여 장치에서 실행되고 데이터를 조작하는 커널 작성
  • OpenCL C 데이터 유형, 한정자, 연산자 및 표현식 사용
  • 수학, 기하학, 관계형 등과 같은 OpenCL C 내장 함수 사용
  • 원자, 이미지, cl_khr_fp16 등과 같은 OpenCL C 확장 및 라이브러리 사용

OpenCL 메모리 모델

  • 호스트 메모리 모델과 장치 메모리 모델의 차이점 이해
  • 전역, 지역, 상수, 개인 등 OpenCL 메모리 공간 사용
  • 버퍼, 이미지, 파이프 등 OpenCL 메모리 개체 사용
  • 읽기 전용, 쓰기 전용, 읽기-쓰기 등과 같은 OpenCL 메모리 액세스 모드를 사용합니다.
  • OpenCL 메모리 일관성 모델 및 동기화 메커니즘 사용

OpenCL 실행 모델

  • 호스트 실행 모델과 장치 실행 모델의 차이점 이해
  • OpenCL 작업 항목, 작업 그룹 및 ND 범위를 사용하여 병렬 처리 정의
  • get_global_id, get_local_id, get_group_id 등과 같은 OpenCL 작업 항목 함수를 사용합니다.
  • Barrier, work_group_reduce, work_group_scan 등과 같은 OpenCL 작업 그룹 기능을 사용합니다.
  • get_num_groups, get_global_size, get_local_size 등과 같은 OpenCL 장치 기능을 사용합니다.

디버깅

  • OpenCL 프로그램의 일반적인 오류 및 버그 이해
  • Visual Studio 코드 디버거를 사용하여 변수, 중단점, 호출 스택 등을 검사합니다.
  • CodeXL을 사용하여 AMD 장치에서 OpenCL 프로그램 디버깅 및 분석
  • Intel VTune을 사용하여 Intel 장치에서 OpenCL 프로그램 디버깅 및 분석
  • NVIDIA Nsight를 사용하여 NVIDIA 장치에서 OpenCL 프로그램 디버깅 및 분석

최적화

  • OpenCL 프로그램의 성능에 영향을 미치는 요소 이해
  • OpenCL 벡터 데이터 유형 및 벡터화 기술을 사용하여 산술 처리량 향상
  • OpenCL 루프 언롤링 및 루프 타일링 기술을 사용하여 제어 오버헤드를 줄이고 집약성을 높입니다.
  • OpenCL 로컬 메모리 및 로컬 메모리 기능을 사용하여 메모리 액세스 및 대역폭 최적화
  • OpenCL 프로파일링 및 프로파일링 도구를 사용하여 실행 시간 및 리소스 활용도를 측정하고 개선합니다.

요약 및 다음 단계

Requirements

  • C/C++ 언어 및 병렬 프로그래밍 개념에 대한 이해
  • 컴퓨터 아키텍처 및 메모리 계층에 대한 기본 지식
  • 명령줄 도구 및 코드 편집기 사용 경험

청중

  • OpenCL을 사용하여 이기종 장치를 프로그래밍하고 병렬성을 활용하는 방법을 배우고 싶은 개발자
  • 다양한 플랫폼과 장치에서 실행할 수 있는 이식 가능하고 확장 가능한 코드를 작성하려는 개발자
  • 이기종 프로그래밍의 하위 수준 측면을 탐색하고 코드 성능을 최적화하려는 프로그래머
 28 Hours

Number of participants


Price per participant

회원 평가 (2)

Upcoming Courses