컴퓨팅 커널

Compute kernel

컴퓨팅에서 컴퓨팅 커널은 메인 프로그램(일반적으로 중앙처리장치에서 실행됨)과 분리되지만 메인 프로그램(일반적으로 중앙처리장치에서 실행됨)에서 사용되는 높은 스루풋액셀러레이터(GPU, 디지털신호프로세서, 필드프로그래머블게이트어레이(FPGA) 등)용으로 컴파일된 루틴입니다.컴퓨팅 셰이더라고 불리기도 하며, GPU 상의 정점 셰이더 및 픽셀 셰이더실행 단위를 공유하지만, 한 클래스의 디바이스 또는 그래픽 API에서 [1][2]실행되는 것으로 제한되지는 않습니다.

묘사

컴퓨팅 커널은 기존 언어로 알고리즘을 구현할 때 내부 루프(암묵적인 순차 연산은 제외) 또는 내부 반복자에게 전달되는 코드와 대략 일치합니다.

OpenCL C(OpenCL API에 의해 관리됨)와 같은 별도의 프로그래밍 언어로 지정되거나, C++AMP경우처럼 쉐이딩 언어로 작성된 "컴퓨팅 셰이더"로 지정되거나, 고급 언어로 작성된 애플리케이션 코드에 직접 포함될 수 있습니다.

벡터 처리

프로그래밍 패러다임은 벡터 프로세서에 잘 매핑됩니다.배치 내 커널의 각 호출은 독립적이며 데이터 병렬 실행을 허용한다는 가정이 있습니다., 경우에 따라서는 (상호의존적인 작업을 위해) 요소 의 동기화를 위해 원자 연산이 사용될 수 있다.개개의 호출에는 중복되지 않는 가정이 존중되는 한 버퍼 데이터의 임의의 어드레싱(산란 수집 조작 포함)을 실행할 수 있는 인덱스(1개 이상의 차원)가 부여됩니다.

벌칸 API

Vulkan API는 Graphical Shader와 Compute Kernels를 모두 언어의존하지 않고 머신에 의존하지 않는 방법으로 기술하기 위한 중간 SPER-V 표현을 제공합니다.그 목적은 통합 메모리 아키텍처이기종 시스템 아키텍처 의 하드웨어 개발에 따라 언어 진화를 촉진하고 GPU 컴퓨팅 기능을 보다 자연스럽게 활용하는 것입니다.이것에 의해, CPU와 GPU가 보다 밀접하게 제휴할 수 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Introduction to Compute Programming in Metal
  2. ^ CUDA Tutorial - the Kernel