컴퓨팅 커널
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가 보다 밀접하게 제휴할 수 있습니다.