맨위로가기

OpenCL

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

OpenCL은 애플이 개발하고 크로노스 그룹이 관리하는, 다양한 종류의 프로세서에서 병렬 컴퓨팅을 수행하기 위한 프레임워크이다. CPU, GPU, FPGA 등 이종 컴퓨팅 자원을 지원하며, C99 기반의 OpenCL C 또는 C++14 기반의 C++ for OpenCL 프로그래밍 언어를 사용하여 커널을 개발한다. 2008년에 OpenCL 1.0이 처음 발표된 이후, 여러 차례의 버전 업데이트를 거치며 기능이 개선되었으며, 2020년에는 OpenCL 3.0이 출시되었다. OpenCL은 CUDA와 유사하게 GPGPU를 지원하며, OpenGL, DirectX 등 다른 API와의 상호 운용성을 제공한다. 대한민국에서는 삼성전자, LG전자 등 주요 IT 기업에서 OpenCL을 활용하며, 정부 차원에서도 관련 기술 개발을 지원하고 있다.

더 읽어볼만한 페이지

  • GPGPU 라이브러리 - CUDA
    CUDA는 엔비디아에서 개발한 GPU 기반 병렬 컴퓨팅 플랫폼으로, 연산 집약적인 작업을 가속화하며 다양한 프로그래밍 언어를 지원하고 3D 그래픽, 동영상 변환 등 여러 분야에 활용된다.
  • GPGPU 라이브러리 - ROCm
    ROCm은 AMD가 개발한 개방형 소프트웨어 스택으로, GPU를 활용한 컴퓨팅을 지원하며, HIP를 통해 CUDA 코드를 사용할 수 있도록 지원하고 머신 러닝, 슈퍼컴퓨팅 등 다양한 분야에서 활용된다.
  • GPGPU - 인텔 Xe
    인텔 Xe는 저전력부터 고성능 컴퓨팅까지 다양한 시장을 목표로 하는 인텔의 GPU 아키텍처 제품군으로, Xe-LP, Xe-HPG, Xe-HP, Xe-HPC 등의 하위 아키텍처를 가지며 외장 그래픽 카드인 인텔 아크 시리즈와 내장 그래픽, 데이터 센터용 GPU 등에 활용된다.
  • GPGPU - 테라스케일 (마이크로아키텍처)
    테라스케일은 AMD가 개발한 GPU 마이크로아키텍처로, 셰이더 처리량 증가를 위해 통합 셰이더 모델을 사용하며, VLIW 아키텍처를 기반으로 라데온 HD 2000, 3000, 4000, 5000, 6900 시리즈에 적용되었다가 그래픽스 코어 넥스트 아키텍처로 대체되었다.
  • 2009년 소프트웨어 - 윈도우 서버 2008 R2
    윈도우 서버 2008 R2는 윈도우 7 기반의 마이크로소프트 서버 운영 체제로, 하이퍼-V 2.0을 통한 가상화 성능 향상, 액티브 디렉터리 기능 개선, IIS 7.5를 통한 웹 서비스 강화 등의 기능이 추가되었으나 2020년 1월에 지원이 종료되었다.
  • 2009년 소프트웨어 - 인터넷 익스플로러 8
    인터넷 익스플로러 8은 마이크로소프트가 개발하여 2009년에 출시된 웹 브라우저로, 사용자 인터페이스, 웹 표준 준수, 보안 기능 등을 개선하고 웹 조각, 액셀러레이터 등의 새로운 기능을 추가했으나, 웹 표준 미준수 등의 문제로 인해 2016년에 지원이 종료되었다.
OpenCL - [IT 관련 정보]에 관한 문서
개요
종류API
개발자크로노스 그룹
최초 릴리스2009년 8월 28일
라이선스OpenCL 규격 라이센스
웹사이트OpenCL 공식 웹사이트
기술 정보
프로그래밍 언어C (C++ 바인딩 포함)
운영체제안드로이드 (제조사 의존)
FreeBSD
리눅스
macOS (Pocl 사용)
윈도우
플랫폼ARMv7
ARMv8
Cell
IA-32
Power
x86-64
OpenCL C/C++ 및 C++ for OpenCL
프로그래밍 패러다임명령형 (절차적)
구조적
(C++만 해당) 객체 지향
제네릭
계열C
최신 릴리스 버전 (OpenCL C++ 1.0)V2.2–11
최신 릴리스 날짜2019년 7월 19일
최신 릴리스 버전 (OpenCL C 3.0)V3.0.11
최신 릴리스 날짜2020년 4월 27일
최신 릴리스 버전 (C++ for OpenCL)1.0 및 2021
최신 릴리스 날짜2021년 12월 20일
타이핑정적
약한
명시적
명칭적
파일 확장자.cl .clcpp
영향을 준 언어C99
CUDA
C++14
C++17
기타
설명이기종 컴퓨팅 시스템을 위한 개방형 표준

2. 역사

OpenCL은 애플이 최초로 개발했으며, 이후 AMD, 인텔, 엔비디아 등과 함께 크로노스 그룹에 제안하여 표준화가 진행되었다.

OpenCL의 역사는 다음과 같이 요약될 수 있다.


  • 초기 개발 및 제안: 애플은 OpenCL을 최초로 개발하고 상표권을 보유했다. 이후 AMD, 인텔, 엔비디아 등과 협력하여 초기 제안서를 크로노스 그룹에 제출했다.[342]
  • 크로노스 컴퓨트 워킹 그룹 결성: 2008년 6월 16일, CPU, GPU, 임베디드 프로세서, 소프트웨어 업체들이 참여하는 크로노스 컴퓨트 워킹 그룹이 결성되었다.[342] 이 그룹은 OpenCL 1.0 표준을 만들기 위해 작업했다.
  • OpenCL 1.0 명세서 완성 및 발표: 2008년 11월 18일, OpenCL 1.0 기술 규격 명세서가 완성되었고,[343] 2008년 12월 8일 공식적으로 발표되었다.[344]
  • 표준화 진행: OpenCL 명세서는 크로노스 그룹에서 개발 중이며, 관심 있는 어떤 회사에라도 개방되어 있다.
  • 애플의 제안 및 크로노스 그룹 작업반: OpenCL은 애플에 의해 제안된 후,[226] 표준화 단체 크로노스 그룹의 OpenCL Working Group영어 (구 Compute Working Group영어)에 의해 제정되었다.
  • WWDC 2008 발표: 2008년 6월 10일(일본 시간) WWDC 2008에서 macOS Mac OS X Snow Leopard에 탑재될 기술 중 하나로 처음 발표되었다.
  • SIGGRAPH 및 Supercomputing 발표: 2008년 8월 SIGGRAPH 2008 및 11월 Supercomputing 2008영어 (SC08)에서 사양 책정의 진척 상황이 발표되었다.
  • OpenCL 버전별 발표:
  • 1.0: 2008년12월 9일 SIGGRAPH Asia 2008에서 정식 발표.
  • 1.1: 2010년6월 14일 정식 발표.
  • 1.2: 2011년11월 15일 정식 발표.
  • 2.0: 2013년7월 22일 정식 발표.
  • 2.1: 2015년11월 16일 정식 발표.
  • 2.2: 2017년5월 16일 정식 발표.
  • 3.0: 2020년4월 27일 잠정 사양 공개, 2020년9월 30일 최종 사양 공개.
  • macOS에서의 OpenCL 비권장: 2018년 6월, Apple은 WWDC에서 macOS Mojave 이후에서는 OpenCL을 비권장으로 하고, Metal을 사용할 것을 권장하고 있다.

2. 1. OpenCL 1.0 (2008년)

OpenCL은 애플이 최초로 개발했으며, AMD, 인텔, 엔비디아 등과 함께 최초 제안서를 크로노스 그룹에 제출하였다. 2008년 6월 16일 크로노스 컴퓨트 워킹 그룹이 결성되었고, 5개월 동안의 작업을 거쳐 2008년 11월 18일 OpenCL 1.0 명세서가 완성되었다.[343] 이 기술 명세서는 2008년 12월 8일 공식 발표되었다.[344]

맥 OS X 10.6 스노 레퍼드에서부터 OpenCL이 지원되기 시작했다.[345] 애플은 OpenCL을 통해 이전에는 그래픽 애플리케이션에서만 사용 가능했던 GPU의 연산 능력을 모든 응용 프로그램에서 활용할 수 있게 되었다고 발표했다.[346] OpenCL은 C 프로그래밍 언어를 기반으로 하며 개방형 표준으로 제안되었다. 최초의 OpenCL 구현은 LLVM 및 Clang 컴파일러를 기반으로 한 것으로 알려졌다.

AMD는 OpenCL 및 다이렉트엑스 11을 지원하기 위해 자사 고유의 스트림 프레임워크 내 "Close to Metal"을 포기하기로 결정했다.[347][348] RapidMind는 여러 제조업체의 GPU를 단일 인터페이스를 통해 지원하기 위해 자사 개발 플랫폼에서 OpenCL을 채택했다.[349] 엔비디아는 2008년 12월 9일 자사의 GPU 컴퓨팅 툴킷에서 OpenCL 1.0을 완벽히 지원한다고 발표하였다.[350]

OpenCL을 사용하면 일반 CPU에 비해 그래픽 카드에서 최대 1000배의 계산 가속이 가능하다.[48] OpenCL 1.0에서는 배정밀도 또는 반정밀도 연산과 같은 기능은 선택 사항이었다.[49]

다음은 OpenCL 1.0과 관련된 주요 사건들을 정리한 표이다.

날짜사건
2008년 6월애플 WWDC 컨퍼런스에서 Mac OS X Snow Leopard 초기 베타 버전에 OpenCL 첫 베타 구현 포함.
2008년 12월 10일AMD와 엔비디아가 SIGGRAPH Asia 2008에서 최초 공개 OpenCL 시연.
2009년 3월 16일Imagination Technologies, OpenCL 지원하는 첫 GPU인 PowerVR SGX543MP 발표.
2009년 3월 26일GDC 2009에서 AMD와 Havok가 OpenCL 최초 작동 구현 시연.
2009년 4월 20일엔비디아, OpenCL 얼리 액세스 프로그램 개발자들에게 OpenCL 드라이버와 SDK 출시 발표.
2009년 8월 5일AMD, OpenCL 플랫폼용 첫 개발 도구 공개.
2009년 8월 28일애플, OpenCL 전체 구현 포함하는 Mac OS X Snow Leopard 출시.[136]
2009년 9월 28일엔비디아, 자체 OpenCL 드라이버 및 SDK 구현 출시.
2009년 10월 13일AMD, R700/HD 5000 GPU 및 SSE3 지원 CPU에서 완전한 OpenCL 구현 제공하는 ATI Stream SDK 2.0의 네 번째 베타 버전 출시.
2009년 11월 26일엔비디아, OpenCL 1.0(rev 48) 드라이버 출시.
2009년 10월 27일S3, 네이티브 OpenCL 1.0 지원하는 첫 제품인 Chrome 5400E 임베디드 그래픽 프로세서 출시.
2009년 12월 10일VIA, OpenCL 1.0 지원하는 첫 제품인 VN1000 칩셋에 포함된 ChromotionHD 2.0 비디오 프로세서 출시.
2009년 12월 21일AMD, HD 5000 GPU에 대한 OpenCL 1.0 지원과 R700 GPU에 대한 베타 지원을 제공하는 ATI Stream SDK 2.0 생산 버전 출시.
2010년 6월 1일ZiiLABS, 휴대용, 임베디드 및 디지털 홈 제품용 ZMS 프로세서에 대한 첫 번째 OpenCL 구현 세부 정보 공개.
2010년 6월 30일IBM, OpenCL 1.0 완전 호환 버전 출시.[3]


2. 2. OpenCL 1.1 (2010년)

2010년 6월 14일크로노스 그룹에 의해 비준되었으며,[50] 향상된 병렬 프로그래밍 유연성, 기능성 및 성능을 위한 다음과 같은 중요한 기능을 추가했다.

  • 3성분 벡터 및 추가 이미지 형식을 포함한 새로운 데이터 형식.
  • 여러 호스트 스레드에서 명령을 처리하고 여러 장치에서 버퍼를 처리하는 기능.
  • 1D, 2D 또는 3D 직사각형 영역의 읽기, 쓰기 및 복사를 포함한 버퍼 영역에 대한 연산.
  • 명령 실행을 구동하고 제어하기 위한 향상된 이벤트 사용.
  • 정수 클램프, 셔플 및 비동기 스트라이드 복사와 같은 추가 OpenCL 내장 C 함수.
  • OpenCL 및 OpenGL 이벤트를 연결하여 이미지와 버퍼를 효율적으로 공유함으로써 개선된 OpenGL 상호 운용성.


OpenCL 실행 환경인 운영 체제 상에는 ICD (Installable Client Driver) 로더라는 메커니즘을 통해 여러 벤더의 OpenCL 구현을 혼합하여 사용할 수 있다(cl_khr_icd)[215]. 각 벤더의 OpenCL 구현은 "플랫폼"으로 추상화되어 OpenCL API를 통해 열거 및 선택할 수 있다. 또한 OpenCL은 커널 코드의 실행 하드웨어를 "디바이스"로 추상화한다. 각 OpenCL 플랫폼은 여러 OpenCL 디바이스를 가질 수 있으며, OpenCL API를 통해 열거 및 선택할 수 있다.

2. 3. OpenCL 1.2 (2011년)

2011년 11월 15일, 크로노스 그룹은 OpenCL 1.2 사양[51]을 발표했는데, 이는 이전 버전에 비해 병렬 프로그래밍의 성능과 기능을 크게 향상시켰다. 주요 기능은 다음과 같다.

  • 장치 분할: 장치를 하위 장치로 나누어 작업을 개별 컴퓨팅 유닛에 할당할 수 있다. 이는 시간 제약적인 작업의 지연 시간을 줄이기 위해 장치의 특정 영역을 예약하는 데 유용하다.
  • 객체의 개별 컴파일 및 링크: OpenCL을 다른 프로그램에 포함하기 위한 외부 라이브러리로 컴파일할 수 있다.
  • 향상된 이미지 지원 (선택 사항): 1.2 버전에서는 1D 이미지 및 1D/2D 이미지 배열에 대한 지원이 추가되었다. 또한 OpenGL 공유 확장을 통해 OpenGL 1D 텍스처와 1D/2D 텍스처 배열을 사용하여 OpenCL 이미지를 생성할 수 있다.
  • 내장 커널: 특정 고유 기능을 포함하는 사용자 지정 장치가 OpenCL 프레임워크에 더 긴밀하게 통합되었다. 커널을 호출하여 기본 하드웨어의 특수화되거나 프로그래밍 불가능한 부분을 사용할 수 있다. 예를 들어 비디오 인코딩/디코딩 및 디지털 신호 처리기가 있다.
  • DirectX 기능: DX9 미디어 표면 공유를 통해 OpenCL과 DX9 또는 DXVA 미디어 표면 간의 효율적인 공유가 가능하다. 마찬가지로 DX11에서도 OpenCL과 DX11 표면 간의 원활한 공유를 지원한다.
  • 단정밀도 부동 소수점 수학에 대한 IEEE 754 준수 강제 기능: OpenCL은 기본적으로 나눗셈, 역수 및 제곱근 연산의 단정밀도 버전이 IEEE 754에서 요구하는 올바르게 반올림된 값보다 덜 정확하도록 허용한다.[52] 프로그래머가 컴파일러에 "-cl-fp32-correctly-rounded-divide-sqrt" 명령줄 인수를 전달하면, OpenCL 구현이 이를 지원하는 경우 이 세 가지 연산이 IEEE 754 요구 사항에 따라 계산된다. OpenCL 구현이 IEEE 754 사양에 정의된 대로 이러한 연산을 올바르게 반올림된 값으로 계산하는 것을 지원하지 않으면 컴파일에 실패한다.[52] 이러한 기능은 OpenCL 구현이 IEEE 754 정확도로 이러한 연산을 수행할 수 있는지 여부를 쿼리하는 기능으로 보완된다.[52]

2. 4. OpenCL 2.0 (2013년)

OpenCL영어 2.0은 2013년 11월 18일에 크로노스 그룹에서 최종 확정 및 공개되었다.[53] 주요 기능 추가 및 업데이트는 다음과 같다.

  • 공유 가상 메모리
  • 중첩 병렬 처리
  • 일반 주소 공간
  • 이미지 (선택 사항, 3D 이미지 포함)
  • C11 아토믹
  • 파이프
  • 안드로이드 설치 가능한 클라이언트 드라이버 확장
  • 선택적 cl_khr_fp16 확장을 통한 반정밀도 확장
  • cl_double: 배정밀도 IEEE 754 (선택 사항)

2. 5. OpenCL 2.1 (2015년)

C++14의 부분 집합을 기반으로 하는 OpenCL C++ 커널 언어가 도입되었다.[54] Vulkan과 OpenCL 2.1은 SPIR-V를 중간 표현으로 공유하여 고급 언어 프론트 엔드가 공통 컴파일 대상을 공유할 수 있도록 하였다.[54] OpenCL API에 대한 업데이트는 다음과 같다.[54]

  • 추가적인 서브그룹 기능
  • 커널 객체 및 상태 복사
  • 낮은 대기 시간의 장치 타이머 쿼리
  • 런타임에 의한 SPIR-V 코드 수집
  • 큐에 대한 실행 우선 순위 힌트
  • 호스트에서 0 크기 디스패치


AMD, ARM, 인텔, HPC 및 YetiWare는 OpenCL 2.1에 대한 지원을 선언했다.[55][56]

2. 6. OpenCL 2.2 (2017년)

```

(요약 및 원본 소스에 해당 섹션 내용이 없어 본문 내용이 출력되지 않습니다.)

2. 7. OpenCL 3.0 (2020년)

OpenCL 3.0 사양은 2020년 4월부터 미리보기로 공개되었고, 2020년 9월 30일에 정식 출시되었다.[18][62][63][64] OpenCL 1.2 기능이 필수가 되었으며, 모든 OpenCL 2.x 및 OpenCL 3.0 기능은 선택 사항이 되었다. 이 사양은 OpenCL C 언어를 유지하고 OpenCL C++ 커널 언어를 폐지했으며, Clang/LLVM 컴파일러를 기반으로 하는 C++17 및 SPIR-V 중간 코드를 구현하는 C++ for OpenCL 언어로 대체했다.

3. 특징

OpenCL은 다음과 같은 특징을 가지고 있다.


  • CPU (CL_DEVICE_TYPE_CPU), GPU (CL_DEVICE_TYPE_GPU), Cell/FPGA/제온 파이(CL_DEVICE_TYPE_ACCELERATOR) 등 다양한 계산 자원을 지원한다.[9]
  • C 언어(ISO C99 표준) 기반의 OpenCL C 또는 C++(ISO C++14 표준) 언어 기반의 OpenCL C++ 프로그래밍 언어를 사용한 커널 기술을 사용한다.[9]
  • 내장된 벡터 타입 및 벡터 연산 (float2 타입, float4 타입 등 및 Swizzle 연산 등)을 지원한다.
  • 온라인 OpenCL C 컴파일러를 포함한다.
  • Standard Portable Intermediate Representation|표준 이식 가능한 중간 표현영어 (SPIR) 및 SPIR-V 중간 표현을 지원한다. (SPIR 1.2/2.0 for OpenCL 1.2/2.0, SPIR-V 1.0 for OpenCL 2.1)[16]
  • 데이터 병렬 및 태스크 병렬 프로그래밍 모델을 지원한다.[9]
  • 동기화 지점을 제외한 내용의 일관성을 보장하지 않는 완화형 일관성 공유 메모리 모델(relaxed-consistency shared memory model영어)을 사용한다.
  • 동기화 지점 및 OpenCL 원자 연산을 통한 호스트-장치 간 메모리 일관성을 보장하는 공유 가상 메모리 (shared virtual memory: SVM, OpenCL 2.0)를 지원한다.
  • IEEE 754를 준수하는 단정밀도 부동 소수점 수 (float 타입) 연산을 지원한다.
  • 포인터 전달 및 float 타입과의 상호 변환 함수를 통한 접근으로 제한되는 IEEE 754-2008 준수 반정밀도 부동 소수점 수 (half 타입)를 지원한다.
  • OpenCL 1.0에서는 half 타입의 직접 연산은 확장(cl_khr_fp16)에 의한 임의 지원에 그쳤다.
  • OpenCL 1.0에서는 배정밀도 부동 소수점 수 (double 타입)는 확장(cl_khr_fp64)에 의한 임의 지원에 그쳤다.
  • 1차원/2차원/3차원 이미지 오브젝트를 지원한다. (1차원 이미지는 OpenCL 1.2 이후)
  • OpenGLOpenGL ES버퍼, 텍스처, 렌더 버퍼와의 연동을 지원한다. (cl_gl.h, OpenCL 1.0 이후 확장)
  • EGL (API)|EGL영어의 이미지, 디스플레이, 동기화 오브젝트와의 연동을 지원한다. (cl_egl.h, OpenCL 1.2 이후 확장)
  • Direct3D 10의 버퍼 및 텍스처와의 연동을 지원한다. ([https://www.khronos.org/registry/OpenCL/sdk/1.1/docs/man/xhtml/cl_khr_d3d10_sharing.html cl_khr_d3d10_sharing]; cl_d3d10.h, OpenCL 1.1 이후 확장)
  • Direct3D 11의 버퍼 및 텍스처와의 연동을 지원한다. ([https://www.khronos.org/registry/OpenCL/sdk/1.2/docs/man/xhtml/cl_khr_d3d11_sharing.html cl_khr_d3d11_sharing]; cl\_d3d11.h, OpenCL 1.2 이후 확장)
  • DirectX 9의 미디어 서페이스 연동을 지원한다. ([https://www.khronos.org/registry/OpenCL/sdk/1.2/docs/man/xhtml/cl_khr_dx9_media_sharing.html cl_khr_dx9_media_sharing]; cl\_dx9\_media\_sharing.h, OpenCL 1.2 이후 확장)


OpenCL과 유사한 기술로 NVIDIA의 CUDA가 있지만, OpenCL은 CUDA와 마찬가지로 3D 그래픽스 API인 OpenGL(크로스 플랫폼) 및 Direct3D(Windows 플랫폼 전용)와의 상호 운용성(Interoperability영어)이 API 레벨에서 확보되어 있다.

OpenCL의 동작 타겟으로서의 요건을 충족하는 GPU(주로 DirectX 10 세대 이상의 통합형 셰이더 아키텍처를 채택한 GPU)에서 사용할 수 있는 Direct3D API(Direct3D 10 및 Direct3D 11)와의 상호 운용 기능은 크로노스가 관리하고 있는 OpenCL API 공식 확장으로 지원되지만, 구 Direct3D 9와의 상호 운용 기능은 OpenCL 2.0 시점에서도 벤더별 확장 기능에 의존하고 있다(cl_d3d9_ext.h).

OpenCL에서의 half/double형 지원 상황은 CUDA 등 다른 API와 매우 유사하며, 지원 여부는 하드웨어 장치에 달려 있다[208]。OpenGL/Direct3D에서는 부동 소수점 텍스처, 즉 데이터 스토리지의 형식으로 FP32 형식 외에 FP16 형식을 선택할 수 있지만, 통상 GPU가 잘하는 연산 정밀도는 단정밀도이므로, 셰이더 프로그램에서 사용할 수 있는 연산 정밀도는 일반적으로 단정밀도가 되며, 배정밀도나 반정밀도는 옵션으로 취급된다[209]

OpenCL의 이미지 오브젝트를 지원하는 장치 (CL_DEVICE_IMAGE_SUPPORT)에서는 바이리니어 필터링 등 빠른 하드웨어 기능을 이용할 수도 있다[210]

아래는 OpenGL 관련 확장이다.

  • cl_apple_gl_sharing, cl_khr_gl_sharing: OpenCL 1.0 확장[211]
  • cl_khr_gl_event: OpenCL 1.2 확장[212]
  • cl_khr_egl_image, cl_khr_gl_msaa_sharing: OpenCL 2.0 확장[213][214]

4. OpenCL C 언어

OpenCL C[19]C99를 기반으로 하지만, OpenCL의 장치 모델에 맞게 조정된 언어이다. 메모리 버퍼는 메모리 계층 구조의 특정 레벨에 있으며, 포인터는 `__global`, `__local`, `__constant`, `__private`와 같은 영역 한정자로 표시된다. OpenCL C 함수는 호스트 프로그램에서 호출될 프로그램의 진입점임을 나타내기 위해 `__kernel`로 표시된다. 함수 포인터, 비트 필드, 가변 길이 배열은 지원되지 않으며, 재귀는 허용되지 않는다.[20] C 표준 라이브러리는 수학 프로그래밍에 특화된 함수 집합으로 대체되었다.

OpenCL C는 벡터 유형 및 연산, 동기화, 작업 항목 및 작업 그룹 작업을 위한 함수를 통해 병렬성을 쉽게 사용할 수 있도록 확장되었다.[20] 예를 들어, C의 `float` 및 `double`과 같은 스칼라 유형 외에도, OpenCL은 `float4` (단정밀도 부동 소수점 수의 4-벡터)와 같은 고정 길이 벡터 유형을 제공한다. 이러한 벡터 유형은 다양한 기본 유형에 대해 길이 2, 3, 4, 8, 16으로 사용할 수 있다.[19] 이러한 유형에 대한 벡터화된 연산은 CPU에서 OpenCL 프로그램을 실행할 때 SIMD 명령어 세트(예: SSE 또는 VMX)에 매핑되도록 설계되었다.[11] 다른 특수 유형으로는 2차원 및 3차원 이미지 유형이 있다.

다음은 OpenCL C로 작성된 행렬-벡터 곱셈 알고리즘이다.



// A*x를 곱하여 결과를 y에 넣습니다.

// A는 행 우선 행렬이며, (i,j) 요소는 A[i*ncols+j]에 있습니다.

__kernel void matvec(__global const float *A, __global const float *x,

uint ncols, __global float *y)

{

size_t i = get_global_id(0); // 행 인덱스로 사용되는 전역 ID

__global float const *a = &A[i*ncols]; // i번째 행에 대한 포인터

float sum = 0.f; // 내적을 위한 누산기

for (size_t j = 0; j < ncols; j++) {

sum += a[j] * x[j];

}

y[i] = sum;

}



`matvec` 커널 함수는 각 호출에서 행렬 `A`의 한 행과 벡터 `x`의 내적을 계산한다.

y_i = a_{i,:} \cdot x = \sum_j a_{i,j} x_j .

OpenCL 런타임은 이 커널을 행렬의 행에 매핑하여 전체 행렬-벡터 곱셈을 수행한다. 호스트 측면에서는 `clEnqueueNDRangeKernel` 함수가 이 작업을 수행하며, 실행할 커널, 인수, 그리고 행렬 `A`의 행 수에 해당하는 작업 항목 수를 인수로 받는다.

5. C++ for OpenCL 언어

C++ for OpenCL은 C++17 기반의 언어로, OpenCL C의 기능을 상속하면서 C++ 기능을 사용할 수 있게 해준다.[25] OpenCL 커널 코드 개발자들이 익숙한 프로그래밍 흐름과 도구를 계속 사용하고, OpenCL C용으로 제공되는 기존 확장 및 라이브러리를 활용할 수 있도록 하여 C++ 기능으로의 원활한 전환 경로를 제공한다.

하지만, 가상 함수, 예외 처리, C++ 표준 라이브러리 등 일부 C++ 기능은 지원되지 않는다.[32] OpenCL C의 메모리 영역(''주소 공간'') 개념은 C++ 기능(기능적 캐스트, 템플릿, 클래스 멤버, 참조, 람다 함수 및 연산자)으로 확장된다.[32]

다음은 C++ 기능을 사용하여 복소수 연산을 하는 OpenCL 커널 코드 예시이다.



// 다양한 정밀도로 복소수 계산을 수행할 수 있는 Complex 클래스를 정의합니다.

// T에 double, float, half 등 다른 유형을 사용할 때

template

class complex_t {

T m_re; // 실수부

T m_im; // 허수부

public:

complex_t(T re, T im): m_re{re}, m_im{im} {};

// 복소수 곱셈 연산자 정의

complex_t operator*(const complex_t &other) const

{

return {m_re * other.m_re - m_im * other.m_im,

m_re * other.m_im + m_im * other.m_re};

}

T get_re() const { return m_re; }

T get_im() const { return m_im; }

};

// 입력 버퍼에서 읽은 복소수에 대한 곱셈을 계산하고

// 계산된 결과를 출력 버퍼에 저장하는 도우미 함수

template

void compute_helper(__global T *in, __global T *out) {

auto idx = get_global_id(0);

// 각 작업 항목은 입력 버퍼에서 4개의 연속된 항목을 사용합니다.

// - 각 복소수에 대해 두 개씩.

auto offset = idx * 4;

auto num1 = complex_t{in[offset], in[offset + 1]};

auto num2 = complex_t{in[offset + 2], in[offset + 3]};

// 복소수 곱셈 수행

auto res = num1 * num2;

// 각 작업 항목은 출력 버퍼에 2개의 연속된 항목을 씁니다.

out[idx * 2] = res.get_re();

out[idx * 2 + 1] = res.get_im();

}

// 이 커널은 단정밀도에서 복소수 곱셈에 사용됩니다.

__kernel void compute_sp(__global float *in, __global float *out) {

compute_helper(in, out);

}

#ifdef cl_khr_fp16

// 이 커널은 장치에서 지원될 때 반정밀도에서 복소수 곱셈에 사용됩니다.

#pragma OPENCL EXTENSION cl_khr_fp16: enable

__kernel void compute_hp(__global half *in, __global half *out) {

compute_helper(in, out);

}

#endif



C++ for OpenCL은 OpenCL C와 동일한 방식으로 사용될 수 있으며, C++의 제네릭 프로그래밍 패러다임을 통해 복잡한 기능을 더 편리하게 표현할 수 있다.

6. 메모리 계층 구조

OpenCL은 컴퓨팅 장치에 대해 4단계의 메모리 계층을 정의한다.[11]


  • 전역 메모리: 모든 처리 요소에서 공유되지만 접근 지연 시간이 높다.
  • 읽기 전용 메모리: 더 작고 지연 시간이 짧으며 호스트 CPU에서 쓸 수 있지만 컴퓨팅 장치에서는 쓸 수 없다.
  • 로컬 메모리: 처리 요소 그룹에서 공유된다.
  • 요소별 개인 메모리(레지스터).


모든 장치가 이 계층의 각 단계를 하드웨어로 구현할 필요는 없다. 계층 내의 다양한 수준 간의 일관성은 완화되어 있으며, 특히 장벽과 같은 명시적인 동기화 구문을 통해서만 적용된다.

장치는 호스트 CPU와 메모리를 공유할 수도 있고 공유하지 않을 수도 있다.[11] 호스트 API는 장치 메모리 버퍼에 대한 핸들과 호스트와 장치 간에 데이터를 주고받는 기능을 제공한다.

7. 구현

OpenCL은 런타임에 로드되는 헤더와 공유 객체로 구성된다. 각 공급업체별로 설치 가능한 클라이언트 드라이버(ICD)를 플랫폼에 설치해야 한다. 예를 들어, Linux에서 Nvidia 장치를 지원하려면 Nvidia ICD를 설치해야 OpenCL 런타임(ICD 로더)이 해당 공급업체의 ICD를 찾아 호출을 리디렉션할 수 있다.[73]

표준 OpenCL 헤더는 소비자 응용 프로그램에서 사용되며, 각 함수 호출은 OpenCL 런타임을 통해 ICD를 사용하여 적절한 드라이버로 프록시된다. 각 공급업체는 드라이버에서 각 OpenCL 호출을 구현해야 한다.[73]

Apple,[74] Nvidia,[75] ROCm, RapidMind[76] 및 Gallium3D[77]의 OpenCL 구현은 LLVM 컴파일러 기술을 기반으로 하며, Clang 컴파일러를 프론트엔드로 사용한다.

다음은 다양한 구현체의 현황이다.


  • MESA Gallium Compute
  • 여러 플랫폼을 위한 OpenCL 구현(현재 1.1 미완성, 대부분 AMD Radeon GCN)은 Mesa 프로젝트의 Gallium Compute 프로젝트의 일부로 유지 관리된다.[78] 이전에는 CLOVER로 알려졌다.[79]
  • 현재 개발 상황: 주로 LLVM 및 CLANG으로 불완전한 프레임워크 실행 지원, 17.3에서 fp16과 같은 새로운 기능,[80] AMD 및 Nvidia용 OpenCL 1.0, 1.1 및 1.2 완료 목표.
  • Red Hat에서 SPIR-V를 사용하여 Clover와 함께 새로운 기본 개발을 진행 중이다.[81][82] 새로운 목표는 OpenCL 1.2를 완벽하게 지원하는 모듈식 OpenCL 3.0이다.
  • Mesamatrix에서 현재 상태를 확인할 수 있다. 이미지 지원은 개발의 초점이다.
  • RustiCL: C 대신 Rust를 사용하는 Gallium 컴퓨팅을 위한 새로운 구현이다. Mesa 22.2에서는 Darktable과 같은 프로그램에 대한 OpenCL 3.0 지원 및 이미지 확장 구현과 함께 실험적 구현이 제공된다.[83]
  • Intel Xe (Arc) 및 AMD GCN+는 Mesa 22.3+에서 지원된다. AMD R600 및 Nvidia Kepler+도 하드웨어 지원 대상이다.[84][85][86]
  • RustiCL은 Luxmark 벤치마크에서 Radeon RX 6700 XT 하드웨어로 AMD ROCM보다 성능이 뛰어나다.[87] Mesa 23.1은 공식 RustiCL을 지원하며, Mesa 23.2에서는 중요한 fp64 지원이 실험적 수준에 있다.
  • 마이크로소프트(Microsoft)의 Arm용 Windows 11은 Mesa Gallium을 통해 DirectX 12를 기반으로 하는 오픈 소스 OpenCL 구현인 CLon12를 통해 OpenCL 1.2 지원을 추가했다.[88][89][90]

  • BEIGNET: Intel이 자사 아이비 브릿지 + 하드웨어를 위해 구현한 것으로 2013년에 출시되었다.[91]
  • 인텔의 중국 팀에서 만들었으며, AMD 및 Red Hat 개발자,[92] 뿐만 아니라 Phoronix의 마이클 라라벨(Michael Larabel)로부터 비판을 받았다.[93]
  • 현재 버전 1.3.2는 OpenCL 1.2를 완벽하게 지원하고 (아이비 브릿지 이상) Skylake 이상에 대해 OpenCL 2.0을 선택적으로 지원한다.[94][95] Beignet에 Android 지원이 추가되었다.[96]
  • 현재 개발 목표: 1.2 및 2.0만 지원하며, OpenCL 2.1, 2.2, 3.0으로의 길은 NEO로 갔다.

  • NEO: 2018년에 출시된 Gen. 8 브로드웰 + Gen. 9 하드웨어를 위한 Intel의 구현.[97]
  • 이 드라이버는 지원되는 플랫폼(6세대 Haswell 이전 제외)에 대해 Beignet 구현을 대체한다.
  • NEO는 Core 플랫폼에서 OpenCL 2.1 지원을 제공하고 Atom 플랫폼에서 OpenCL 1.2 지원을 제공한다.[98]
  • 현재 2020년에는 Graphic Gen 11 Ice Lake 및 Gen 12 Tiger Lake도 지원된다. 새로운 OpenCL 3.0은 Alder Lake, Tiger Lake to Broadwell에 대해 버전 20.41+에서 사용할 수 있다. 이제 선택적 OpenCL 2.0, 2.1 기능이 완벽하며 2.2의 일부 기능도 포함된다.

  • ROCm: AMD의 GPUOpen의 일부로 생성된 ROCm (Radeon Open Compute)은 OpenCL 1.2를 기반으로 구축된 오픈 소스 Linux 프로젝트로, 2.0에 대한 언어 지원을 제공한다.
  • 이 시스템은 모든 최신 AMD CPU 및 APU(실제로는 GFX 7, GFX 8 및 9 일부)는 물론 Intel Gen7.5+ CPU(PCI 3.0만 해당)와 호환된다.[99][100]
  • 버전 1.9에서는 일부 지점에서 PCIe 2.0 및 원자성을 사용하지 않는 하드웨어로 실험적으로 확장된 지원이 제공된다. 실제 작업에 대한 개요는 XDC2018에서 수행된다.[101][102]
  • ROCm 버전 2.0은 전체 OpenCL 2.0을 지원하지만 일부 오류 및 제한 사항이 할 일 목록에 있다.[103][104] 버전 3.3은 세부적으로 개선되고 있다.[105] 버전 3.5는 OpenCL 2.2를 지원한다.[106]
  • 버전 3.10은 개선 사항과 새로운 API가 포함되었다.[107] SC20에서 발표된 ROCm 4.0은 AMD Compute Card Instinct MI 100을 지원한다.[108]
  • 5.5.1 및 이전 버전에 대한 실제 문서는 GitHub에서 확인할 수 있다.[109][110][111] OpenCL 3.0을 사용할 수 있다.
  • RocM 5.5.x+는 GFX 9 Vega 이상만 지원하므로 이전 RocM 릴리스 또는 향후 RustiCL을 사용하여 이전 하드웨어를 사용할 수 있다.

  • POCL: CPU와 일부 GPU(CUDA 및 HSA를 통해)를 지원하는 휴대용 구현. Clang 및 LLVM을 기반으로 구축되었다.[112]
  • 버전 1.0에서는 OpenCL 1.2가 일부 2.x 기능과 함께 거의 완전히 구현되었다.[113] 버전 1.2는 LLVM/CLANG 6.0, 7.0 및 모든 폐쇄된 티켓이 있는 전체 OpenCL 1.2 지원과 함께 Milestone 1.2에 있다.[113][114]
  • OpenCL 2.0이 거의 완전히 구현되었다.[115] 버전 1.3은 Mac OS X를 지원한다.[116] 버전 1.4는 LLVM 8.0 및 9.0 지원을 포함한다.[117]
  • 버전 1.5는 LLVM/Clang 10 지원을 구현한다.[118] 버전 1.6은 LLVM/Clang 11 지원 및 CUDA 가속을 구현한다.[119]
  • 현재 목표는 OpenCL 2.x, OpenCL 3.0을 완료하고 성능을 개선하는 것이다. POCL 1.6은 수동 최적화를 통해 Intel 컴퓨팅 런타임과 동일한 수준이다.[120]
  • 버전 1.7은 LLVM/Clang 12 지원 및 일부 새로운 OpenCL 3.0 기능을 구현한다.[121] 버전 1.8은 LLVM/Clang 13 지원을 구현한다.[122]
  • 버전 3.0은 OpenCL 3.0을 최소 수준으로 구현하고 LLVM/Clang 14를 구현한다.[123] 버전 3.1은 LLVM/Clang 15와 개선된 Spir-V 지원과 함께 작동한다.[124]

  • Shamrock: OpenCL 1.2를 완벽하게 지원하는 ARM용 Mesa Clover의 포트,[125][126] 2.0에 대한 실제 개발 없음.

  • FreeOCL: 보다 신뢰할 수 있는 플랫폼을 만들기 위해 외부 컴파일러를 구현하는 OpenCL 1.2의 CPU 중심 구현,[127] 실제 개발 없음.

  • MOCL: 2018년에 NUDT 연구원이 Matrix-2000을 위해 POCL을 기반으로 구현한 OpenCL이 출시되었다.
  • Matrix-2000 아키텍처는 TianHe-2 슈퍼컴퓨터의 Intel Xeon Phi 가속기를 대체하도록 설계되었다.
  • 이 프로그래밍 프레임워크는 LLVM v5.0을 기반으로 구축되었으며 POCL의 일부 코드 조각을 재사용한다.
  • 하드웨어 잠재력을 해제하기 위해 장치 런타임은 푸시 기반 작업 디스패칭 전략을 사용하며 커널 원자성의 성능이 크게 향상되었다.
  • 이 프레임워크는 TH-2A 시스템에 배포되었으며 대중에게 쉽게 공개된다.[128] 일부 소프트웨어는 다음에 POCL을 개선하기 위해 포팅될 것이다.[113]

  • VC4CL: 라즈베리 파이 모델 4 이전에 사용된 VideoCore IV (BCM2763) 프로세서를 위한 OpenCL 1.2 구현.[129]


크로노스 그룹은 OpenCL 규격 제품의 확장된 목록을 유지 관리한다.[3]

OpenCL 규격 제품 요약[3]
https://developer.amd.com/tools-and-sdks/ AMD SDKs (OpenCL CPU 및 APU 장치 지원), (GPU: Terascale 1: OpenCL 1.1, Terascale 2: 1.2, GCN 1: 1.2+, GCN 2+: 2.0+)X86 + SSE2 (이상) 호환 CPU 64비트 및 32비트,[176] Linux 2.6 PC, Windows Vista/7/8.x/10 PCAMD 퓨전 E-350, E-240, C-50, C-30 (HD 6310/HD 6250 포함)AMD Radeon/Mobility HD 6800, HD 5x00 시리즈 GPU, iGPU HD 6310/HD 6250, HD 7xxx, HD 8xxx, R2xx, R3xx, RX 4xx, RX 5xx, Vega 시리즈AMD FirePro Vx800 시리즈 GPU 이상, Radeon Pro
http://software.intel.com/en-us/vcsource/tools/opencl-sdk 인텔 OpenCL 애플리케이션용 SDK 2013[177] (인텔 코어 프로세서 및 인텔 HD 그래픽 4000/2500 지원) OpenCL 2.1(Gen7+)을 사용하는 2017 R2, SDK 2019는 OpenCL 2.1을 제거함,[178] 실제 SDK 2020 업데이트 3인텔 CPU (SSE 4.1, SSE 4.2 또는 AVX 지원).[179][180] 마이크로소프트 윈도우, 리눅스인텔 코어 i7, i5, i3; 2세대 인텔 코어 i7/5/3, 인텔 HD 그래픽 4000/2500 이상을 탑재한 3세대 인텔 코어 프로세서인텔 코어 2 솔로, 듀오, 쿼드, 익스트림 이상인텔 제온 7x00,5x00,3x00 (코어 기반) 이상
IBM 서버(Linux용 http://www.alphaworks.ibm.com/tech/opencl OpenCL 개발 키트)[181][182]IBM Power 775 (PERCS), 750IBM BladeCenter PS70x ExpressIBM BladeCenter JS2x, JS43IBM BladeCenter QS22
IBM http://www.alphaworks.ibm.com/tech/ocr OpenCL 공통 런타임(OCR)X86 + SSE2 (이상) 호환 CPU 64비트 및 32비트;[184] Linux 2.6 PCAMD 퓨전, Nvidia Ion 및 인텔 코어 i7, i5, i3; 2세대 인텔 코어 i7/5/3AMD Radeon, Nvidia GeForce 및 인텔 코어 2 솔로, 듀오, 쿼드, 익스트림ATI FirePro, Nvidia Quadro 및 인텔 제온 7x00,5x00,3x00 (코어 기반)
http://developer.nvidia.com/opencl 엔비디아 OpenCL 드라이버 및 도구[185] 칩: Tesla : OpenCL 1.1(드라이버 340), Fermi : OpenCL 1.1(드라이버 390), Kepler : OpenCL 1.2 (드라이버 470), OpenCL 2.0 베타 (378.66), OpenCL 3.0: Maxwell to Ada Lovelace (드라이버 525+)Nvidia Tesla C/D/SNvidia GeForce GTS/GT/GTX,Nvidia IonNvidia Quadro FX/NVX/Plex, Quadro, Quadro K, Quadro M, Quadro P, 볼타가 탑재된 Quadro, 튜링이 탑재된 Quadro RTX, 앰페어



모든 표준 준수 구현은 clinfo 도구 중 하나를 사용하여 쿼리할 수 있다(동일한 이름과 유사한 기능 집합을 가진 여러 도구가 있음).[186][187][188]

8. 관련 기술


  • SYCL: C++ 기반의 단일 소스 프로그래밍 모델로, OpenCL을 기반으로 구축되었으며, 현재는 OpenCL을 거치지 않는 백엔드도 지원한다.[245][246][247][248] SYCL을 사용하면 개발자는 C++를 사용하여 호스트 코드와 장치 코드를 동일 소스 내에 기술할 수 있어, CUDA C++ 및 C++ AMP와 유사한 방식으로 이종 프로세서용 코드를 작성할 수 있다.

  • Vulkan: 크로노스 그룹에서 개발한 차세대 그래픽스 및 컴퓨팅 API로, OpenCL과 SPIR-V를 중간 표현으로 공유한다.[54] 이를 통해 고급 언어 프론트 엔드가 공통 컴파일 대상을 공유할 수 있도록 한다.

참조

[1] 웹사이트 Android Devices With OpenCL support https://docs.google.[...] ArrayFire 2015-04-28
[2] 웹사이트 FreeBSD Graphics/OpenCL https://wiki.freebsd[...] FreeBSD 2015-12-23
[3] 웹사이트 Conformant Products https://www.khronos.[...] Khronos Group 2015-05-09
[4] 웹사이트 The OpenCL C++ 1.0 Specification https://www.khronos.[...] Khronos OpenCL Working Group 2019-07-19
[5] 웹사이트 The OpenCL C Specification Version: 3.0 Document Revision: V3.0.7 https://www.khronos.[...] Khronos OpenCL Working Group 2021-04-28
[6] 웹사이트 The C++ for OpenCL 1.0 and 2021 Programming Language Documentation https://github.com/K[...] Khronos OpenCL Working Group 2022-12-02
[7] 웹사이트 Conformant Companies https://www.khronos.[...] Khronos Group 2024-09-19
[8] 웹사이트 Xilinx SDAccel Development Environment for OpenCL, C, and C++, Achieves Khronos Conformance http://www.prnewswir[...] Xilinx 2015-04-27
[9] 웹사이트 The OpenCL Specification Version: 2.1 Document Revision: 23 https://www.khronos.[...] Khronos OpenCL Working Group 2015-11-16
[10] 웹사이트 An Introduction to the OpenCL Programming Model http://www.cs.nyu.ed[...] New York University Media Research Lab 2015-07-06
[11] 논문 OpenCL: a parallel programming standard for heterogeneous computing systems
[12] 논문 PyCUDA and PyOpenCL: A scripting-based approach to GPU run-time code generation
[13] 웹사이트 OpenCL - Open Computing Language Bindings https://metacpan.org[...] metacpan.org 2018-08-18
[14] 웹사이트 D binding for OpenCL https://code.dlang.o[...] dlang.org 2021-06-29
[15] 서적 Heterogeneous Computing with OpenCL: Revised OpenCL 1.2 Edition Morgan Kaufmann
[16] 웹사이트 SPIR – The first open standard intermediate language for parallel compute and graphics https://www.khronos.[...] Khronos Group 2014-01-21
[17] 웹사이트 SYCL – C++ Single-source Heterogeneous Programming for OpenCL https://www.khronos.[...] Khronos Group 2016-10-24
[18] 웹사이트 C++ for OpenCL, OpenCL-Guide https://github.com/K[...] 2021-04-18
[19] 웹사이트 The OpenCL C Specification, Version 2.0 https://www.khronos.[...] 2014-06-24
[20] 웹사이트 Introduction to OpenCL Programming 201005 http://developer.amd[...] AMD 2017-08-08
[21] 웹사이트 OpenCL http://s08.idav.ucda[...] SIGGRAPH2008 2008-08-14
[22] 웹사이트 Fitting FFT onto G80 Architecture http://www.cs.berkel[...] Vasily Volkov and Brian Kazian, UC Berkeley CS258 project report 2008-11-14
[23] 웹사이트 OpenCL_FFT https://developer.ap[...] Apple 2022-06-18
[24] 웹사이트 Khronos Announcements and Panel Discussion https://www.iwocl.or[...] 2020-04-28
[25] 서적 Proceedings of the International Workshop on OpenCL Association for Computing Machinery 2020-04-27
[26] 문서 KhronosGroup/OpenCL-Docs https://github.com/K[...] The Khronos Group 2021-04-18
[27] 웹사이트 Clang release 9 documentation, OpenCL support https://releases.llv[...] 2019-09
[28] 웹사이트 Clang 9, Language Extensions, OpenCL https://releases.llv[...] 2019-09
[29] 웹사이트 Release of Documentation of C++ for OpenCL kernel language, version 1.0, revision 1 · KhronosGroup/OpenCL-Docs https://github.com/K[...] 2020-12
[30] 웹사이트 Release of Documentation of C++ for OpenCL kernel language, version 1.0 and 2021 · KhronosGroup/OpenCL-Docs https://github.com/K[...] 2021-12
[31] 웹사이트 The C++ for OpenCL 1.0 Programming Language Documentation https://www.khronos.[...] 2021-04-18
[32] 웹사이트 Release of C++ for OpenCL Kernel Language Documentation, version 1.0, revision 2 · KhronosGroup/OpenCL-Docs https://github.com/K[...] 2021-03
[33] 웹사이트 cl_ext_cxx_for_opencl https://www.khronos.[...] 2020-09
[34] 웹사이트 Mali SDK Supporting Compilation of Kernels in C++ for OpenCL https://community.ar[...] 2020-12
[35] 웹사이트 Clang Compiler User's Manual — C++ for OpenCL Support https://clang.llvm.o[...] 2021-04-18
[36] 웹사이트 OpenCL-Guide, Offline Compilation of OpenCL Kernel Sources https://github.com/K[...] 2021-04-18
[37] 웹사이트 OpenCL-Guide, Programming OpenCL Kernels https://github.com/K[...] 2021-04-18
[38] 간행물 Experimental implementation of OpenCL on Vulkan https://github.com/k[...] 2021-04-17
[39] 뉴스 Khronos Launches Heterogeneous Computing Initiative https://www.khronos.[...] Khronos Group 2008-06-16
[40] 웹사이트 OpenCL gets touted in Texas http://www.macworld.[...] MacWorld 2009-06-12
[41] 뉴스 The Khronos Group Releases OpenCL 1.0 Specification https://www.khronos.[...] Khronos Group 2016-12-04
[42] 뉴스 Apple Previews Mac OS X Snow Leopard to Developers https://www.apple.co[...] Apple Inc. 2008-06-09
[43] 뉴스 AMD Drives Adoption of Industry Standards in GPGPU Software Development https://www.amd.com/[...] AMD 2008-08-14
[44] 웹사이트 AMD Backs OpenCL, Microsoft DirectX 11 http://www.eweek.com[...] eWeek 2008-08-14
[45] 웹사이트 HPCWire: RapidMind Embraces Open Source and Standards Projects http://www.hpcwire.c[...] HPCWire 2008-11-10
[46] 뉴스 Nvidia Adds OpenCL To Its Industry Leading GPU Computing Toolkit http://www.nvidia.co[...] Nvidia 2008-12-10
[47] 웹사이트 OpenCL Development Kit for Linux on Power http://www.alphawork[...] alphaWorks 2009-10-30
[48] 웹사이트 Opencl Standard – an overview | ScienceDirect Topics https://www.scienced[...]
[49] 웹사이트 The OpenCL Specification Version: 1.0 Document Revision: 48 https://developer.am[...] Khronos OpenCL Working Group
[50] 웹사이트 Khronos Drives Momentum of Parallel Computing Standard with Release of OpenCL 1.1 Specification https://www.khronos.[...] 2016-02-24
[51] 웹사이트 Khronos Releases OpenCL 1.2 Specification https://www.khronos.[...] Khronos Group 2015-06-23
[52] 웹사이트 OpenCL 1.2 Specification https://www.khronos.[...] Khronos Group 2015-06-23
[53] 웹사이트 Khronos Finalizes OpenCL 2.0 Specification for Heterogeneous Computing Khronos Group 2014-02-10
[54] 웹사이트 Khronos Releases OpenCL 2.1 and SPIR-V 1.0 Specifications for Heterogeneous Parallel Programming https://www.khronos.[...] Khronos Group 2015-11-16
[55] 웹사이트 Khronos Announces OpenCL 2.1: C++ Comes to OpenCL http://www.anandtech[...] AnandTech 2015-04-08
[56] 웹사이트 Khronos Releases OpenCL 2.1 Provisional Specification for Public Review https://www.khronos.[...] Khronos Group 2015-04-08
[57] 웹사이트 OpenCL Overview https://www.khronos.[...] Khronos Group 2013-07-21
[58] 웹사이트 Khronos Releases OpenCL 2.2 Provisional Specification with OpenCL C++ Kernel Language for Parallel Programming https://www.khronos.[...] Khronos Group 2016-04-18
[59] 웹사이트 OpenCL – A State of the Union http://www.iwocl.org[...] Khronos Group 2017-01-02
[60] 웹사이트 Khronos Releases OpenCL 2.2 With SPIR-V 1.2 https://www.khronos.[...] Khronos Group 2017-05-16
[61] 웹사이트 OpenCL 2.2 Maintenance Update Released https://www.khronos.[...] 2018-05-14
[62] 웹사이트 OpenCL 3.0 Bringing Greater Flexibility, Async DMA Extensions https://www.phoronix[...]
[63] 웹사이트 Khronos Group Releases OpenCL 3.0 https://www.khronos.[...] 2020-04-26
[64] 웹사이트 The OpenCL Specification https://www.khronos.[...] Khronos OpenCL Working Group
[65] 웹사이트 State of the Union: OpenCL Working Group https://www.iwocl.or[...] 2021
[66] 웹사이트 Using Semaphore and Memory Sharing Extensions for Vulkan Interop with NVIDIA OpenCL https://developer.nv[...] 2022-02-24
[67] 웹사이트 OpenCL 3.0.14 Released with New Extension for Command Buffer Multi-Device https://www.phoronix[...]
[68] 웹사이트 Breaking: OpenCL Merging Roadmap into Vulkan | PC Perspective https://www.pcper.co[...] 2017-05-17
[69] 웹사이트 SIGGRAPH 2018: OpenCL-Next Taking Shape, Vulkan Continues Evolving – Phoronix https://www.phoronix[...]
[70] 간행물 Clspv is a prototype compiler for a subset of OpenCL C to Vulkan compute shaders: google/clspv https://github.com/g[...] 2019-08-17
[71] 웹사이트 Vulkan Update SIGGRAPH 2019 https://www.khronos.[...]
[72] 웹사이트 Khronos and OpenCL Overview EVS Workshop May19 https://www.khronos.[...] 2019-05-23
[73] 웹사이트 OpenCL ICD Specification https://www.khronos.[...] 2015-06-23
[74] 웹사이트 Apple entry on LLVM Users page http://llvm.org/User[...] 2009-08-29
[75] 웹사이트 Nvidia entry on LLVM Users page http://llvm.org/User[...] 2009-08-06
[76] 웹사이트 Rapidmind entry on LLVM Users page http://llvm.org/User[...] 2009-10-01
[77] 웹사이트 Zack Rusin's blog post about the Gallium3D OpenCL implementation http://zrusin.blogsp[...] 2009-02-01
[78] 웹사이트 GalliumCompute http://dri.freedeskt[...] dri.freedesktop.org 2015-06-23
[79] 웹사이트 Clover Status Update https://www.x.org/wi[...]
[80] 웹사이트 mesa/mesa – The Mesa 3D Graphics Library https://cgit.freedes[...]
[81] 웹사이트 Gallium Clover With SPIR-V & NIR Opening Up New Compute Options Inside Mesa – Phoronix https://www.phoronix[...] 2018-12-13
[82] 웹사이트 OpenCL support inside mesa through SPIR-V and NIR https://xdc2018.x.or[...] 2018-01-01
[83] 웹사이트 Mesa's 'Rusticl' Implementation Now Manages to Handle Darktable OpenCL https://www.phoronix[...]
[84] 웹사이트 Mesa's Rusticl Achieves Official OpenCL 3.0 Conformance https://www.phoronix[...]
[85] 웹사이트 Mesa 22.3 Released with RDNA3 Vulkan, Rusticl OpenCL, Better Intel Arc Graphics https://www.phoronix[...]
[86] 웹사이트 Mesa's Rusticl OpenCL Driver Nearly Ready with AMD Radeon GPU Support https://www.phoronix[...]
[87] 웹사이트 Mesa's Rusticl OpenCL Implementation Can Outperform Radeon's ROCm Compute Stack https://www.phoronix[...]
[88] 웹사이트 State of Windows on Arm64: a high-level perspective https://chipsandchee[...] 2023-10-23
[89] 웹사이트 Introducing OpenCL and OpenGL on DirectX https://www.collabor[...] 2023-10-23
[90] 웹사이트 Deep dive into OpenGL over DirectX layering https://www.collabor[...] 2023-10-23
[91] 웹사이트 Beignet: OpenCL/GPGPU Comes For Ivy Bridge On Linux https://www.phoronix[...] 2013-01-10
[92] 웹사이트 More Criticism Comes Towards Intel's Beignet OpenCL https://www.phoronix[...] 2013-04-16
[93] 웹사이트 Intel's Beignet OpenCL Is Still Slowly Baking https://www.phoronix[...] 2013-12-24
[94] 웹사이트 Beignet https://freedesktop.[...] freedesktop.org
[95] 웹사이트 beignet – Beignet OpenCL Library for Intel Ivy Bridge and newer GPUs https://cgit.freedes[...]
[96] 웹사이트 Intel Brings Beignet To Android For OpenCL Compute – Phoronix https://www.phoronix[...]
[97] 웹사이트 01.org Intel Open Source – Compute Runtime https://01.org/compu[...] 2018-02-07
[98] 웹사이트 NEO GitHub README https://github.com/i[...] 2019-03-21
[99] 웹사이트 ROCm https://radeonopenco[...]
[100] 웹사이트 'RadeonOpenCompute/ROCm: ROCm – Open Source Platform for HPC and Ultrascale GPU Computing' https://github.com/R[...] GitHub 2019-03-21
[101] 웹사이트 A Nice Overview Of The ROCm Linux Compute Stack – Phoronix https://www.phoronix[...]
[102] 웹사이트 XDC Lightning.pdf https://drive.google[...]
[103] 웹사이트 Radeon ROCm 2.0 Officially Out With OpenCL 2.0 Support, TensorFlow 1.12, Vega 48-bit VA – Phoronix https://www.phoronix[...]
[104] 웹사이트 Taking Radeon ROCm 2.0 OpenCL For A Benchmarking Test Drive – Phoronix https://www.phoronix[...]
[105] 문서 https://github.com/RadeonOpenCompute/ROCm/blob/master/AMD_ROCm_Release_Notes_v3.3.pdf
[106] 웹사이트 Radeon ROCm 3.5 Released with New Features but Still No Navi Support – Phoronix https://www.phoronix[...]
[107] 웹사이트 Radeon ROCm 3.10 Released with Data Center Tool Improvements, New APIs – Phoronix https://www.phoronix[...]
[108] 웹사이트 AMD Launches Arcturus as the Instinct MI100, Radeon ROCm 4.0 – Phoronix https://www.phoronix[...]
[109] 웹사이트 Welcome to AMD ROCm™ Platform — ROCm Documentation 1.0.0 documentation https://rocm-documen[...]
[110] 웹사이트 Home https://docs.amd.com[...]
[111] 웹사이트 AMD Documentation – Portal https://docs.amd.com[...]
[112] 간행물 pocl: A Performance-Portable OpenCL Implementation
[113] 웹사이트 pocl home page http://portablecl.or[...]
[114] 웹사이트 GitHub – pocl/pocl: pocl: Portable Computing Language. https://github.com/p[...] 2019-03-14
[115] 웹사이트 HSA support implementation status as of 2016-05-17 — Portable Computing Language (pocl) 1.3-pre documentation http://portablecl.or[...]
[116] 웹사이트 PoCL home page http://portablecl.or[...]
[117] 웹사이트 PoCL home page http://portablecl.or[...]
[118] 웹사이트 PoCL home page http://portablecl.or[...]
[119] 웹사이트 POCL 1.6-RC1 Released with Better CUDA Performance – Phoronix https://www.phoronix[...] 2020-12-03
[120] 웹사이트 Performance Evaluation and Improvements of the PoCL Open-Source OpenCL Implementation on Intel CPUs https://www.iwocl.or[...] 2021
[121] 웹사이트 PoCL home page http://portablecl.or[...]
[122] 웹사이트 PoCL home page http://portablecl.or[...]
[123] 웹사이트 PoCL home page http://portablecl.or[...]
[124] 웹사이트 PoCL home page http://portablecl.or[...]
[125] 웹사이트 About https://git.linaro.o[...]
[126] 웹사이트 LCA14-412: GPGPU on ARM SoC https://s3.amazonaws[...] 2014-03-06
[127] 웹사이트 zuzuf/freeocl https://github.com/z[...] 2017-04-13
[128] 컨퍼런스 MOCL: An Efficient OpenCL Implementation for the Matrix-2000 Architecture https://jianbinfang.[...]
[129] 웹사이트 Status https://github.com/d[...] 2022-03-16
[130] Youtube OpenCL Demo, AMD CPU https://www.youtube.[...] 2008-12-10
[131] Youtube OpenCL Demo, Nvidia GPU https://www.youtube.[...] 2008-12-10
[132] 웹사이트 Imagination Technologies launches advanced, highly-efficient POWERVR SGX543MP multi-processor graphics IP family http://www.imgtec.co[...] Imagination Technologies 2009-03-19
[133] 웹사이트 AMD and Havok demo OpenCL accelerated physics http://www.pcper.com[...] PC Perspective 2009-03-26
[134] 웹사이트 Nvidia Releases OpenCL Driver To Developers http://www.nvidia.co[...] Nvidia 2009-04-20
[135] 웹사이트 AMD does reverse GPGPU, announces OpenCL SDK for x86 http://arst.ch/5te Ars Technica 2009-08-05
[136] 웹사이트 Live Update: WWDC 2009 Keynote http://www.macworld.[...] MacWorld 2009-06-08
[137] 웹사이트 ATI Stream Software Development Kit (SDK) v2.0 Beta Program http://developer.amd[...]
[138] 웹사이트 S3 Graphics launched the Chrome 5400E embedded graphics processor http://www.s3graphic[...]
[139] 웹사이트 VIA Brings Enhanced VN1000 Graphics Processor http://www.via.com.t[...]
[140] 웹사이트 ATI Stream SDK v2.0 with OpenCL 1.0 Support http://developer.amd[...]
[141] 웹사이트 OpenCL http://www.ziilabs.c[...] ZiiLABS 2015-06-23
[142] 웹사이트 Intel discloses new Sandy Bridge technical details https://web.archive.[...] 2010-09-13
[143] Bare URL http://reference.wol[...] 2024-08
[144] 웹사이트 WebCL related stories https://www.khronos.[...] Khronos Group 2015-06-23
[145] 웹사이트 Khronos Releases Final WebGL 1.0 Specification https://web.archive.[...] Khronos Group 2015-06-23
[146] 웹사이트 IBM Developer https://developer.ib[...]
[147] 웹사이트 Welcome to Wikis https://www.ibm.com/[...] 2009-10-20
[148] 웹사이트 Nokia Research releases WebCL prototype https://web.archive.[...] Khronos Group 2011-05-04
[149] 웹사이트 Samsung's WebCL Prototype for WebKit https://web.archive.[...] Github.com
[150] 웹사이트 AMD Opens the Throttle on APU Performance with Updated OpenCL Software Development https://www.amd.com/[...] Amd.com 2011-08-08
[151] 웹사이트 AMD APP SDK v2.6 http://forums.amd.co[...] Forums.amd.com 2015-03-13
[152] 웹사이트 The Portland Group Announces OpenCL Compiler for ST-Ericsson ARM-Based NovaThor SoCs http://www.anandtech[...]
[153] 웹사이트 WebCL Latest Spec https://web.archive.[...] Khronos Group 2013-11-07
[154] 웹사이트 Altera Opens the World of FPGAs to Software Programmers with Broad Availability of SDK and Off-the-Shelf Boards for OpenCL https://web.archive.[...] Altera.com
[155] 웹사이트 Altera SDK for OpenCL is First in Industry to Achieve Khronos Conformance for FPGAs https://web.archive.[...] Altera.com
[156] 웹사이트 Khronos Finalizes OpenCL 2.0 Specification for Heterogeneous Computing https://www.khronos.[...] Khronos Group 2013-11-18
[157] 웹사이트 WebCL 1.0 Press Release https://www.khronos.[...] Khronos Group 2014-03-19
[158] 웹사이트 WebCL 1.0 Specification https://www.khronos.[...] Khronos Group 2014-03-14
[159] 웹사이트 Intel OpenCL 2.0 Driver https://archive.toda[...]
[160] 웹사이트 AMD OpenCL 2.0 Driver http://support.amd.c[...] 2015-06-17
[161] 웹사이트 Xilinx SDAccel development environment for OpenCL, C, and C++, achieves Khronos Conformance – khronos.org news https://www.khronos.[...]
[162] 웹사이트 Release 349 Graphics Drivers for Windows, Version 350.12 https://a248.e.akama[...] 2015-04-13
[163] 웹사이트 AMD APP SDK 3.0 Released http://developer.amd[...] 2015-08-26
[164] 웹사이트 Khronos Releases OpenCL 2.1 and SPIR-V 1.0 Specifications for Heterogeneous Parallel Programming https://www.khronos.[...] Khronos Group 2015-11-16
[165] 웹사이트 What's new? Intel® SDK for OpenCL™ Applications 2016, R3 https://software.int[...] Intel Software
[166] 웹사이트 NVIDIA 378.66 drivers for Windows offer OpenCL 2.0 evaluation support https://web.archive.[...] Khronos Group 2017-02-17
[167] 웹사이트 NVIDIA enables OpenCL 2.0 beta-support https://streamhpc.co[...] 2017-02-22
[168] 웹사이트 NVIDIA beta-support for OpenCL 2.0 works on Linux too https://streamhpc.co[...] 2017-03-06
[169] 웹사이트 The Khronos Group https://www.khronos.[...] 2019-03-21
[170] 웹사이트 GitHub – RadeonOpenCompute/ROCm at roc-3.5.0 https://github.com/R[...]
[171] 웹사이트 NVIDIA is Now OpenCL 3.0 Conformant https://developer.nv[...] 2021-04-12
[172] 웹사이트 The Khronos Group https://www.khronos.[...] 2022-12-12
[173] 웹사이트 Mesa's Rusticl Achieves Official OpenCL 3.0 Conformance https://www.phoronix[...]
[174] 웹사이트 The Khronos Group https://www.khronos.[...] 2019-08-20
[175] 웹사이트 KhronosGroup/OpenCL-CTL: The OpenCL Conformance Tests https://github.com/K[...] GitHub 2019-03-21
[176] 웹사이트 OpenCL and the AMD APP SDK http://developer.amd[...] developer.amd.com 2011-08-11
[177] 웹사이트 About Intel OpenCL SDK 1.1 http://software.inte[...] intel.com 2011-08-11
[178] 웹사이트 Intel® SDK for OpenCL™ Applications – Release Notes https://software.int[...] 2019-03-14
[179] 웹사이트 Product Support http://software.inte[...] 2011-08-11
[180] 웹사이트 Intel OpenCL SDK – Release Notes http://software.inte[...] 2011-08-11
[181] 웹사이트 Announcing OpenCL Development Kit for Linux on Power v0.3 http://www.ibm.com/d[...] 2011-08-11
[182] 웹사이트 IBM releases OpenCL Development Kit for Linux on Power v0.3 – OpenCL 1.1 conformant release available https://www.ibm.com/[...] ibm.com 2011-08-11
[183] 웹사이트 IBM releases OpenCL Common Runtime for Linux on x86 Architecture https://www.ibm.com/[...] 2009-10-20
[184] 웹사이트 OpenCL and the AMD APP SDK http://developer.amd[...] developer.amd.com 2011-09-10
[185] 웹사이트 Nvidia Releases OpenCL Driver http://www.tomshardw[...] 2009-04-22
[186] 웹사이트 clinfo by Simon Leblanc https://github.com/s[...] 2017-01-27
[187] 웹사이트 clinfo by Oblomov https://github.com/O[...] 2017-01-27
[188] 웹사이트 clinfo: openCL INFOrmation https://sourceforge.[...] 2017-01-27
[189] 웹사이트 Khronos Products https://www.khronos.[...] 2017-05-15
[190] 웹사이트 OpenCL-CTS/Test_conformance at main · KhronosGroup/OpenCL-CTS https://github.com/K[...]
[191] 웹사이트 Issues · KhronosGroup/OpenCL-CTS https://github.com/K[...]
[192] 웹사이트 Intel Compute-Runtime 20.43.18277 Brings Alder Lake Support https://www.phoronix[...]
[193] 웹사이트 compute-runtime https://01.org/compu[...] 2018-02-07
[194] 간행물 From CUDA to OpenCL: Towards a performance-portable solution for multi-platform GPU programming
[195] 서적 2013 IEEE 6th International Workshop on Multi-/Many-core Computing Systems (MuCoCoS) 2013-09-07
[196] conference 2011 International Conference on Parallel Processing
[197] arXiv A Performance Comparison of CUDA and OpenCL
[198] 문서 A Survey of CPU-GPU Heterogeneous Computing Techniques, ACM Computing Surveys, 2015.
[199] conference Compiler Construction
[200] 웹사이트 Radeon RX 6800 Series Has Excellent ROCm-Based OpenCL Performance On Linux https://www.phoronix[...]
[201] 문서 The OpenCL™ Specification https://www.khronos.[...]
[202] 문서 The OpenCL™ Specification https://www.khronos.[...]
[203] 문서 OpenCL Overview December 2008 http://www.khronos.o[...]
[204] 문서 The OpenCL* Platform on Intel(R) Processors https://software.int[...]
[205] 문서 The OpenCL Specification Version: 2.0; Document Revision: 29 http://www.khronos.o[...]
[206] 문서 Other Built-in Data Types https://www.khronos.[...]
[207] 문서 Khronos OpenCL Registry https://www.khronos.[...]
[208] 문서 Accelerating GPU computation through mixed-precision methods https://www.nvidia.c[...]
[209] 문서 科学技術計算などのGPGPU用途を重視したGPUでは、ハーフレートの倍精度をサポートするものもある。モバイル用GPUや、機械学習向け機能を強化したGPUでは半精度をサポートするものもある。
[210] 문서 sampler_t | OpenCL 1.0 Reference Pages https://www.khronos.[...]
[211] 웹사이트 gl_sharing | OpenCL 1.0 Reference Pages https://www.khronos.[...]
[212] 웹사이트 cl_khr_gl_event | OpenCL 1.2 Reference Pages https://www.khronos.[...]
[213] 웹사이트 cl_khr_egl_image | OpenCL 2.0 Reference Pages https://www.khronos.[...]
[214] 웹사이트 cl_khr_gl_msaa_sharing | OpenCL 2.0 Reference Pages https://www.khronos.[...]
[215] 뉴스 OpenCL Installable Client Driver (ICD) Loader - khronos.org news https://www.khronos.[...]
[216] 웹사이트 OpenCL Overview - The Khronos Group Inc https://www.khronos.[...]
[217] 웹사이트 clGetProgramInfo https://www.khronos.[...]
[218] 웹사이트 clCreateProgramWithBinary https://www.khronos.[...]
[219] 웹사이트 OpenCL meets FPGA #1 入門編 - Qiita http://qiita.com/iit[...]
[220] 웹사이트 Knowledge Base - AMD http://developer.amd[...]
[221] 뉴스 クロノス・グループ、SPIR 2.0の暫定仕様を公開 - 日刊工業新聞 Business Line - 企業発表 http://www.nikkan.co[...]
[222] 웹사이트 cl_khr_spir https://www.khronos.[...]
[223] 웹사이트 SPIR - The first open standard intermediate language for parallel compute and graphics https://www.khronos.[...]
[224] 웹사이트 The OpenCL™ SPIR-V Environment Specification https://www.khronos.[...]
[225] 뉴스 アップル、Mac OS X Snow Leopardをデベロッパにプレビュー http://www.apple.com[...] 2008-06-10
[226] 뉴스 Khronos Launches Heterogeneous Computing Initiative http://www.khronos.o[...] 2008-06-16
[227] 뉴스 RapidMind Embraces Open Source and Standards Projects to Increase Focus on Simplifying Parallel Programming for Application Developers http://www.rapidmind[...] 2008-11-10
[228] 뉴스 The Khronos Group Releases OpenCL 1.0 Specification https://www.khronos.[...]
[229] 뉴스 AMD Adopts OpenCL™ 1.0 Specification Ratified Today by The Khronos™ Group, Reaffirms Commitment to Open Standards for CPU+GPU Compute http://www.businessw[...] 2008-12-08
[230] 뉴스 NVIDIA Adds OpenCL To Its Industry Leading GPU Computing Toolkit http://www.nvidia.co[...] 2008-12-09
[231] 뉴스 Khronos Drives Momentum of Parallel Computing Standard with Release of OpenCL 1.1 Specification - Khronos Group Press Release https://www.khronos.[...]
[232] 웹사이트 clSetKernelArg https://www.khronos.[...]
[233] 뉴스 Khronos Releases OpenCL 1.2 Specification - Khronos Group Press Release https://www.khronos.[...]
[234] 웹사이트 write_image (3D) https://www.khronos.[...]
[235] 뉴스 Khronos Releases OpenCL 2.0 - Khronos Group Press Release https://www.khronos.[...]
[236] 웹사이트 Access Qualifiers: read_writeはCUDA SurfaceやDirectCompute RWTextureといったDirectX 11世代の機能に相当する。 https://www.khronos.[...]
[237] 뉴스 Khronos Releases OpenCL 2.1 and SPIR-V 1.0 Specifications for Heterogeneous Parallel Programming - Khronos Group Press Release https://www.khronos.[...]
[238] 뉴스 Khronos Releases OpenCL 2.1 Provisional Specification for Public Review - Khronos Group Press Release https://www.khronos.[...]
[239] 뉴스 Khronos Releases OpenCL 2.2 With SPIR-V 1.2 - Khronos Group Press Release https://www.khronos.[...]
[240] 뉴스 Khronos Releases OpenCL 2.2 Provisional Specification with OpenCL C++ Kernel Language - Khronos Group Press Release https://www.khronos.[...]
[241] 웹사이트 Metal for OpenGL Developers - WWDC 2018 - Videos https://developer.ap[...] 2020-03-18
[242] 웹사이트 About OpenCL for OS X https://developer.ap[...] 2020-03-18
[243] 뉴스 Khronos Group Releases OpenCL 3.0 https://www.khronos.[...]
[244] 뉴스 OpenCL 3.0 Specification Finalized and Initial Khronos Open Source OpenCL SDK Released https://www.khronos.[...]
[245] 웹사이트 SYCL Overview - The Khronos Group Inc https://www.khronos.[...]
[246] 웹사이트 The Khronos Group Releases Finalized SYCL 1.2.1 - The Khronos Group Inc https://www.khronos.[...]
[247] 웹사이트 SYCL Overview - SYCL 2020 is Here! https://web.archive.[...] Khronos Group 2020
[248] 웹사이트 Khronos Steps Towards Widespread Deployment of SYCL with Release of SYCL 2020 Provisional Specification https://www.khronos.[...] Khronos Group 2020-06-30
[249] 뉴스 Intel、新プログラミング言語「Data Parallel C++」β版公開 https://news.mynavi.[...] マイナビ 2019-11-21
[250] 뉴스 Intel's Initial Open-Source, LLVM-Based SYCL Compiler Is Now Available https://www.phoronix[...] Phoronix 2019-01-28
[251] 뉴스 Intel Continues Working On Their SYCL Compiler For Upstreaming To LLVM https://www.phoronix[...] Phoronix 2019-04-29
[252] 뉴스 Codeplay Brings SYCL, Intel DPC++ To NVIDIA GPUs https://www.phoronix[...] Phoronix 2020-02-03
[253] 뉴스 hipSYCL Gets New Compilation Toolchain For Taking SYCL Directly To CUDA & ROCm https://www.phoronix[...] Phoronix 2019-05-14
[254] 뉴스 hipSYCL Sees Work-In-Progress Support For Intel oneAPI Level Zero Backend https://www.phoronix[...] Phoronix 2021-03-05
[255] 뉴스 Codeplay Outs SYCL-Based ComputeCpp 1.0, Running Parallel C++ Code On Multiple Platforms https://www.phoronix[...] Phoronix 2018-08-23
[256] 웹사이트 Khronos Group SYCL standard - triSYCL Open Source Implementation https://www.khronos.[...] Xilinx 2016
[257] 웹사이트 Update project status in README https://github.com/t[...] triSYCL project 2020-07-03
[258] 웹사이트 triSYCL/sycl: Experimental fusion of triSYCL with Intel SYCL upstreaming effort into Clang/LLVM https://github.com/t[...]
[259] 웹사이트 PTX and SASS Assembly Debugging http://http.develope[...] NVIDIA
[260] 논문 Kernelet: High-Throughput GPU Kernel Executions with Dynamic Slicing and Scheduling http://arxiv.org/pdf[...] Jianlong Zhong, Bingsheng He
[261] 웹사이트 maxas - Getting Started https://github.com/N[...] Nervana Systems
[262] 웹사이트 MaxAs https://github.com/N[...] Nervana Systems
[263] 웹사이트 nervanagpu/nervanagpu/kernels/sass at master · NervanaSystems/nervanagpu · GitHub https://github.com/N[...] Nervana Systems
[264] 웹사이트 NVIDIA Compute - PTX: Parallel Thread Execution http://www.nvidia.co[...] NVIDIA
[265] 웹사이트 Inline PTX Assembly in CUDA http://docs.nvidia.c[...] NVIDIA
[266] 웹사이트 NVIDIA OpenCL SDK Code Samples http://developer.dow[...] NVIDIA
[267] 웹사이트 Clang 3.0 Release Notes http://llvm.org/rele[...] LLVM Project
[268] 웹사이트 User Guide for NVPTX Back-end http://llvm.org/docs[...] LLVM Project
[269] 웹사이트 User Guide for NVPTX Back-end - Running the Kernel http://llvm.org/docs[...] LLVM Project
[270] 웹사이트 AMD Intermediate Language Reference Guide - October 2011 v.2.4 http://amd-dev.wpeng[...] AMD 2011-10
[271] 웹사이트 AMD CAL Programming Guide http://developer.amd[...]
[272] 웹사이트 Mantle Programming Guide and API Reference; Revision 1.0; March 6, 2015 https://web.archive.[...] AMD 2015
[273] 웹사이트 LLVM 3.3 Release Notes http://llvm.org/rele[...] LLVM Project
[274] 웹사이트 A Detailed Look at the R600 Backend http://llvm.org/devm[...] AMD
[275] 웹사이트 Introduction to GEN Assembly https://software.int[...] Intel 2019-09-18
[276] 뉴스 Intel-gpu-tools 1.4 available https://lwn.net/Arti[...] LWN 2013-09-16
[277] 뉴스 Intel oneAPI DPC++ Compiler 2020-08 Released With Explicit SIMD Extension https://www.phoronix[...] Phoronix 2020-08-21
[278] 웹사이트 TGSI — Gallium 0.4 documentation http://gallium.readt[...]
[279] 웹사이트 A Very Early Gallium3D TGSI Back-End For LLVM http://www.phoronix.[...] Phoronix 2013-04-22
[280] 웹사이트 The first open standard intermediate language for parallel compute and graphics https://www.khronos.[...] Khronos Group
[281] 웹사이트 AMD Accelerated Parallel Processing OpenCL™ User Guide - December 2014 rev1.0 http://amd-dev.wpeng[...] AMD 2014-12-01
[282] 뉴스 【後藤弘茂のWeekly海外ニュース】 AMD GPUとモバイルGPUで同じプログラムを走らせるHSA構想 https://pc.watch.imp[...]
[283] 문서 CUDA Toolkit 7.0以前のバージョンに含まれるのはOpenCL 1.1対応のヘッダーとライブラリのみである。また、Fermi世代以前のハードウェアではOpenCL 1.1どまりとなる。
[284] 뉴스 Release 349 Graphics Drivers for Windows, Version 350.12; RN-W35012-01v01 | April 13, 2015; Windows Vista / Windows 7 / Windows 8 / Windows 8.1 http://us.download.n[...]
[285] 뉴스 Release 352 Quadro, NVS, Tesla, GRID, & Notebook Drivers - Version 353.06; RN-WQ35306-01_v01 | June 1, 2015; Windows 7, Windows 8, & Windows 8.1; Release Notes http://us.download.n[...]
[286] 웹사이트 CUDA Toolkit 4.1 - archive https://developer.nv[...]
[287] 웹사이트 CUDA Toolkit 4.2 - archive https://developer.nv[...]
[288] 웹사이트 AMD's APP SDK 3.0 Beta with OpenCL 2.0 support http://developer.amd[...]
[289] 웹사이트 AMD APP SDK v3.0 Beta Developer Release Notes https://developer.am[...]
[290] 웹사이트 AMD OpenCL™ 2.0 Driver https://web.archive.[...]
[291] Github GPUOpen-LibrariesAndSDKs/OCL-SDK https://github.com/G[...]
[292] 웹사이트 OpenCL SDK | Community https://community.am[...]
[293] 웹사이트 Intel® OpenCL™ Code Builder | Intel® Developer Zone https://software.int[...]
[294] 웹사이트 OpenCL* 2.0 の不均等なワークグループ | iSUS http://www.isus.jp/a[...]
[295] 웹사이트 Installable Client Driver on Android* OS https://software.int[...]
[296] 웹사이트 インテル® SDK for OpenCL* Applications よくある問い合わせ | iSUS https://www.isus.jp/[...]
[297] 웹사이트 Get Started with Intel® SDK for OpenCL™ Applications 2019 on Linux*... https://software.int[...]
[298] 웹사이트 Training & Code Samples for Intel® SDK for OpenCL™ Applications https://software.int[...]
[299] 웹사이트 Tutorial: Getting Started with OpenCL™ on Android* OS https://software.int[...]
[300] 웹사이트 compute-runtime https://01.org/compu[...] Intel
[301] 웹사이트 Intel® Integrated Native Developer Experience - Discontinued https://software.int[...] Intel
[302] 웹사이트 OpenCL Development Kit for Linux on Power https://web.archive.[...] IBM 2009-10-30
[303] 서적 Languages and Compilers for Parallel Computing - 23rd International Workshop, LCPC 2010, Houston, TX, USA, October 7-9, 2010. Revised Selected Papers Keith Cooper, John Mellor-Crummey, Vivek Sarkar
[304] 웹사이트 インテル® SDK for OpenCL Applications 2013 よくある問い合わせ | iSUS http://www.isus.jp/a[...]
[305] 웹사이트 OpenGL および OpenCL グラフィックスを扱う Mac コンピュータ - Apple サポート https://support.appl[...]
[306] 웹사이트 レガシ ツール http://japan.xilinx.[...] Xilinx
[307] 웹사이트 SDAccel 開発環境 http://japan.xilinx.[...] Xilinx
[308] 웹사이트 OpenCL Features http://clang.llvm.or[...] The Clang Team
[309] Github KhronosGroup/SPIRV-LLVM-Translator: A tool and a library for bi-directional translation between SPIR-V and LLVM IR https://github.com/K[...]
[310] Github KhronosGroup/LLVM-SPIRV-Backend: An LLVM backend generating SPIR-V binary. https://github.com/K[...]
[311] 뉴스 [GTC 2018]Khronosが語る「Vulkan 1.1」。VR&AR向けAPI「OpenXR」の最新動向も https://www.4gamer.n[...]
[312] 웹사이트 2021 Japan Open House - The Khronos Group Inc https://www.khronos.[...]
[313] 웹사이트 OpenCL-Overview-Jan21-JP.pdf https://www.khronos.[...]
[314] Github GitHub - google/angle: A conformant OpenGL ES implementation for Windows, Mac, Linux, iOS and Android. https://github.com/g[...]
[315] 웹사이트 Home — The Mesa 3D Graphics Library https://www.mesa3d.o[...]
[316] 웹사이트 Intel® VTune™ Amplifier XE: Getting started with OpenCL* performance analysis on Intel® HD Graphics | Intel® Developer Zone https://software.int[...]
[317] 웹사이트 インテル® VTune™ Amplifier XE | iSUS http://www.isus.jp/a[...]
[318] 웹사이트 CodeXL for game developers: How to analyze your HLSL for GCN - AMD http://developer.amd[...]
[319] 웹사이트 GPUOpen-Archive/CodeXL: CodeXL is a comprehensive tool suite that enables developers to harness the benefits of CPUs, GPUs and APUs. https://github.com/G[...]
[320] 웹사이트 Radeon™ GPU Profiler - AMD GPUOpen https://gpuopen.com/[...]
[321] 웹사이트 NVIDIA Nsight Visual Studio Edition https://developer.nv[...]
[322] 웹사이트 gpgpu-sim/gpgpu-sim_distribution · GitHub https://github.com/g[...]
[323] 웹사이트 OpenCL™ Emulator-Debugger - AMD http://developer.amd[...]
[324] 웹사이트 ocl-emu | Google Code Archive - Long-term storage for Google Code Project Hosting. https://code.google.[...]
[325] 웹사이트 OpenCL Emu Documentation http://developer.amd[...]
[326] 웹사이트 KhronosGroup/OpenCL-CLHPP: Khronos OpenCL-CLHPP https://github.com/K[...]
[327] 웹사이트 OpenCL C++ Bindings: Main Page https://github.khron[...]
[328] 웹사이트 opentk/opentk: The Open Toolkit library is a fast, low-level C# wrapper for OpenGL, OpenAL & OpenCL. It also includes windowing, mouse, keyboard and joystick input and a robust and fast math library, giving you everything you need to write your own renderer or game engine. OpenTK can be used standalone or inside a GUI on Windows, Linux, Mac. https://github.com/o[...]
[329] 웹사이트 CUDA/OpenCL/Mercury Playback Engine について(Adobe Premiere Pro) http://helpx.adobe.c[...]
[330] 웹사이트 Photoshop CC および CC 2014 GPU FAQ http://helpx.adobe.c[...]
[331] 웹사이트 Dev:2.6/Source/Render/Cycles/OpenCL - BlenderWiki http://wiki.blender.[...]
[332] 웹사이트 V-Ray Japanese official website - Chaos Group / Chaos Software / OakCorp. http://v-ray.jp/rtgp[...]
[333] 웹사이트 V-Ray Japanese official website - Chaos Group / Chaos Software / OakCorp. http://v-ray.jp/news[...]
[334] 웹사이트 V-Ray RT and GPU rendering http://help.chaosgro[...]
[335] 웹사이트 GPUレイトレーシング | NVIDIA http://www.nvidia.co[...]
[336] 웹사이트 OpenCV 2.2 Released - ROS robotics news http://www.ros.org/n[...]
[337] 웹사이트 アルテラ、国際カーエレクトロクス技術展(カーエレJAPAN)に出展 http://www.altera.co[...]
[338] 웹사이트 オートモーティブワールド2015 開催直前情報:アルテラが披露するFPGAを活用した“今すぐ使える”車載向けソリューション - MONOist(モノイスト) https://monoist.itme[...]
[339] 웹사이트 PixarAnimationStudios/OpenSubdiv · GitHub https://github.com/P[...]
[340] 뉴스 FFmpeg 2.0 Released With OpenCL, Many Changes http://www.phoronix.[...] Phoronix 2013-07-10
[341] 뉴스 Trying Intel OpenCL On Linux For Video Encoding http://www.phoronix.[...] Phoronix 2014-09-02
[342] 웹인용 Khronos Launches Heterogeneous Computing Initiative http://www.khronos.o[...] Khronos Group 2008-06-20
[343] 웹인용 OpenCL gets touted in Texas http://www.macworld.[...] MacWorld 2008-11-20
[344] 웹인용 The Khronos Group Releases OpenCL 1.0 Specification http://www.khronos.o[...] Khronos Group 2008-12-08
[345] 웹인용 Apple Previews Mac OS X Snow Leopard to Developers https://www.apple.co[...] Apple 2008-06-11
[346] 문서 비공식 번역
[347] 웹인용 AMD Drives Adoption of Industry Standards in GPGPU Software Development http://www.amd.com/u[...] AMD 2008-08-06
[348] 웹인용 AMD Backs OpenCL, Microsoft DirectX 11 http://www.eweek.com[...] eWeek 2008-08-06
[349] 웹인용 HPCWire: RapidMind Embraces Open Source and Standards Projects http://www.hpcwire.c[...] HPCWire 2008-11-11
[350] 웹인용 NVIDIA Adds OpenCL To Its Industry Leading GPU Computing Toolkit http://www.nvidia.co[...] Nvidia 2008-12-09
[351] 웹인용 OpenCL Demo, AMD CPU https://www.youtube.[...] 2008-12-10
[352] 웹인용 OpenCL Demo, NVIDIA GPU https://www.youtube.[...] 2008-12-10
[353] 웹인용 AMD and Havok demo OpenCL accelerated physics http://www.pcper.com[...] PC Perspective 2009-03-26
[354] 웹인용 NVIDIA Releases OpenCL Driver To Developers http://www.nvidia.co[...] NVIDIA 2009-04-20
[355] 웹인용 Live Update: WWDC 2009 Keynote http://www.macworld.[...] MacWorld 2009-06-08
[356] 웹인용 Mac OS X Snow Leopard – ''Technical specifications and system requirements'' https://www.apple.co[...] Apple Inc 2009-06-08
[357] 웹인용 OpenCL http://s08.idav.ucda[...] SIGGRAPH2008 2008-08-14
[358] 문서 Fitting FFT onto the G80 Architecture http://www.cs.berkel[...]
[359] 웹인용 Fitting FFT onto G80 Architecture http://www.cs.berkel[...] Vasily Volkov and Brian Kazian, UC Berkeley CS258 project report 2008-11-14



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com