연락처 정보

코스 개요

서론

  • OpenACC란 무엇인가?
  • OpenACC와 OpenCL, CUDA, SYCL의 비교
  • OpenACC의 기능과 아키텍처 개요
  • 개발 환경 설정 방법

시작하기

  • Visual Studio Code에서 OpenACC 프로젝트 생성하기
  • 프로젝트 구조와 파일 살펴보기
  • 프로그램 컴파일 및 실행 방법
  • printf와 fprintf를 활용해 출력값 표시하기

OpenACC 지시문과 절

  • OpenACC 지시문과 절의 이해
  • 병렬 영역 생성을 위한 병렬 지시문 사용법
  • 컴파일러가 관리하는 병렬 처리를 위한 커널 지시문 활용
  • 루프를 병렬화하기 위한 루프 지시문 사용법
  • 데이터 이동을 제어하는 데이터 지시문 활용
  • 데이터 동기화를 위한 업데이트 지시문 사용법
  • 캐시 지시문을 통해 데이터 재사용 개선하기
  • 루틴 지시문을 이용한 장치 전용 함수 생성법
  • 이벤트 동기화를 위한 대기 지시문 사용법

OpenACC API

  • OpenACC API의 역할 이해하기
  • 장치 정보 및 지원 기능 확인 방법
  • 사용할 장치 번호와 종류 설정하기
  • 오류와 예외 상황 처리법
  • 이벤트 생성 및 동기화 방법

OpenACC 라이브러리 및 상호 운용성

  • OpenACC 라이브러리와 상호 운용성에 대한 이해
  • 수학, 난수 생성, 복소수 관련 라이브러리 활용법
  • 다른 프로그래밍 모델(CUDA, OpenMP, MPI 등)과의 통합 방법
  • GPU 전용 라이브러리(cuBLAS, cuFFT 등)와의 연동법

OpenACC 도구들

  • 개발 과정에서 활용 가능한 OpenACC 도구들의 개요
  • OpenACC 프로그램의 성능 분석 및 디버깅 방법
  • PGI 컴파일러, NVIDIA Nsight Systems, Allinea Forge를 이용한 성능 평가법

최적화 기법

  • OpenACC 프로그램의 성능에 영향을 주는 요인들
  • 데이터 로컬리티 개선 및 데이터 전송 최소화 방법
  • 루프 병렬화와 루프 결합을 통한 최적화 기법
  • 커널 수준의 병렬화와 병합을 통한 성능 향상 방안
  • 벡터화 및 자동 튜닝 기술을 활용한 최적화 방법

요약 및 향후 학습 방향

요건

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

수강 대상

  • OpenACC를 활용해 다양한 장치에서 병렬 프로그래밍을 배우고자 하는 개발자
  • 다양한 플랫폼과 장치에서 실행 가능하며 확장성까지 갖춘 코드를 작성하고자 하는 개발자
  • 하이브리드 프로그래밍의 고급 측면을 탐구하고 개발 생산성을 높이고자 하는 프로그래머
 28 시간

참가자 수


참가자별 가격

예정된 코스

관련 카테고리