문의를 보내주셔서 감사합니다! 팀원이 곧 연락드리겠습니다.
Thank you for sending your booking! One of our team members will contact you shortly.
Course Outline
소개
- OpenACC란 무엇입니까?
- OpenACC 대 OpenCL 대 CUDA 대 SYCL
- OpenACC 기능 및 아키텍처 개요
- 개발 환경 설정
시작하기
- Visual Studio 코드를 사용하여 새 OpenACC 프로젝트 생성
- 프로젝트 구조 및 파일 탐색
- 프로그램 컴파일 및 실행
- printf 및 fprintf를 사용하여 출력 표시
OpenACC 지시문 및 조항
- 호스트 및 장치 코드에서 OpenACC 지시문 및 절의 역할 이해
- OpenACC 병렬 지시문 및 절을 사용하여 병렬 영역을 생성하고 갱, 작업자 및 벡터 수를 지정합니다.
- OpenACC 커널 지시문과 절을 사용하여 커널 영역을 생성하고 컴파일러가 병렬성을 결정하도록 함
- OpenACC 루프 지시어 및 절을 사용하여 루프를 병렬화하고 루프 배포, 축소, 축소 및 타일 지정
- OpenACC 데이터 지시문 및 절을 사용하여 데이터 이동 및 데이터 영역 관리
- OpenACC 업데이트 지시문 및 절을 사용하여 호스트와 장치 간의 데이터 동기화
- OpenACC 캐시 지시문 및 절을 사용하여 데이터 재사용 및 지역성 개선
- OpenACC 루틴 지시문 및 절을 사용하여 장치 기능을 생성하고 기능 유형 및 벡터 길이를 지정합니다.
- OpenACC wait 지시어 및 절을 사용하여 이벤트 및 종속성 동기화
오픈ACC API
- 호스트 프로그램에서 OpenACC API의 역할 이해
- OpenACC API를 사용하여 장치 정보 및 기능 쿼리
- OpenACC API를 사용하여 장치 번호 및 장치 유형 설정
- OpenACC API를 사용하여 오류 및 예외 처리
- OpenACC API를 사용하여 이벤트 생성 및 동기화
OpenACC 라이브러리 및 상호 운용성
- OpenACC 라이브러리의 역할과 장치 프로그램의 상호 운용성 기능 이해
- 수학, 무작위, 복소수 등 OpenACC 라이브러리를 사용하여 일반적인 작업 및 작업 수행
- deviceptr, use_device 및 acc_memcpy와 같은 OpenACC 상호 운용성 기능을 사용하여 OpenACC를 CUDA, OpenMP 및 MPI와 같은 다른 프로그래밍 모델과 통합
- Host_data 및 선언과 같은 OpenACC 상호 운용성 기능을 사용하여 OpenACC를 cuBLAS 및 cuFFT와 같은 GPU 라이브러리와 통합
OpenACC 도구
- 개발 프로세스에서 OpenACC 도구의 역할 이해
- OpenACC 도구를 사용하여 OpenACC 프로그램을 프로파일링 및 디버깅하고 성능 병목 현상과 기회를 식별합니다.
- PGI Compiler, NVIDIA Nsight Systems 및 Allinea Forge와 같은 OpenACC 도구를 사용하여 실행 시간 및 리소스 활용도를 측정하고 개선합니다.
최적화
- OpenACC 프로그램의 성능에 영향을 미치는 요소의 이해
- OpenACC 지시문 및 절을 사용하여 데이터 지역성을 최적화하고 데이터 전송을 줄입니다.
- OpenACC 지시문 및 절을 사용하여 루프 병렬 처리 및 융합 최적화
- OpenACC 지시문 및 절을 사용하여 커널 병렬 처리 및 융합 최적화
- OpenACC 지시문 및 절을 사용하여 벡터화 및 자동 조정 최적화
요약 및 다음 단계
Requirements
- C/C++ 또는 Fortran 언어 및 병렬 프로그래밍 개념에 대한 이해
- 컴퓨터 아키텍처 및 메모리 계층에 대한 기본 지식
- 명령줄 도구 및 코드 편집기 사용 경험
청중
- OpenACC를 사용하여 이기종 장치를 프로그래밍하고 병렬성을 활용하는 방법을 배우고 싶은 개발자
- 다양한 플랫폼과 장치에서 실행할 수 있는 이식 가능하고 확장 가능한 코드를 작성하려는 개발자
- 이기종 프로그래밍의 높은 수준의 측면을 탐구하고 코드 생산성을 최적화하려는 프로그래머
28 Hours