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

회원 평가 (1)

Related Courses

GPU Programming with CUDA

28 Hours

GPU Programming - OpenCL vs CUDA vs ROCm

28 Hours

AMD GPU Programming

28 Hours

ROCm for Windows

21 Hours

Introduction to GPU Programming

21 Hours

Related Categories