PoCL 7.2, RISC-V에서 OpenCL을 쓸 때 달라지는 것
PoCL 7.2가 RISC-V·x86 CPU의 OpenCL 적합성 결과와 새 LLVM 지원을 담았다. 인증의 범위, LLVM 21의 CUDA 예외, 도입 비용을 구분한다.
🆓 무료 글 · 누구나 무료로 읽을 수 있는 글입니다
새 개발 보드를 보면 일단 켜 보고 싶다. 그런데 장비를 바꾸는 일보다, 그 위에서 돌릴 코드를 옮기는 일이 더 큰 숙제가 되곤 한다.
9월 4일 정식 공개된 PoCL 7.2는 그 숙제를 줄이려는 쪽의 소식이다. RISC-V와 x86-64 CPU의 OpenCL 3.0 적합성 결과를 담고, 지원하는 컴파일러 범위를 갱신했다. 같은 프로그램을 다른 CPU에 가져갈 근거가 늘었다는 뜻이지, 같은 속도를 약속한다는 뜻은 아니다.
GPU를 사는 이야기보다, 실행 경로를 하나 더 확보하는 이야기
PoCL은 OpenCL 표준을 구현한 오픈소스 소프트웨어다. 애플리케이션이 맡긴 계산 커널을 Clang과 LLVM으로 처리하고, CPU나 다른 지원 장치에서 실행할 수 있도록 런타임과 드라이버를 제공한다. 여기서 커널은 운영체제 커널이 아니라, 여러 데이터에 반복 적용할 계산 코드다.
이런 공통 실행 경로는 기존 OpenCL 코드를 가진 팀이 다른 CPU를 검토할 때 의미가 있다. 장치마다 전혀 다른 프로그래밍 체계부터 마련하는 부담을 줄일 수 있기 때문이다. 다만 실제 이식 비용은 프로그램이 사용하는 기능과 라이브러리, 대상 장치에 달려 있다. PoCL을 설치했다고 임의의 프로그램이 자동으로 병렬화되는 것은 아니다.

인증 날짜와 출시 날짜는 다르다
Khronos 등록부에는 Star64와 Milk-V Jupiter의 RISC-V CPU, x86-64 CPU에서 시험한 PoCL 구성이 올라 있다. 해당 기록은 7월의 사전 버전 구성이다. 이번 9월 정식 릴리스가 그 결과를 소개하는 것이므로, 모든 인증을 이번 주에 새로 받았다고 읽으면 날짜가 어긋난다.
또한 OpenCL 3.0은 1.2 이후의 기능을 선택적으로 지원하도록 설계됐다. 버전 숫자만 같다고 모든 장치의 기능 목록까지 같지는 않다. 프로그램이 필요한 기능을 조회하고, 없는 경우를 처리해야 한다.
개발 현장에서는 이 차이가 꽤 실용적이다. 계산 결과가 맞는지, 필요한 기능이 있는지, 충분히 빠른지는 서로 다른 질문이다. 적합성 시험을 통과했다는 사실을 CPU와 GPU의 성능 비교표로 바꿀 수는 없다. 실제 데이터 크기와 메모리 접근, 실행 경로를 맞춘 측정은 별도로 남는다.
업데이트 버튼보다 먼저 볼 것은 LLVM 버전
버전이 고정된 7.2 릴리스 노트에는 지원 범위의 작은 함정도 있다. 최소 LLVM 버전은 18로 올라갔고, CPU 경로는 22와 23을 지원한다. 하지만 CUDA 경로에서는 upstream Clang 버그 때문에 LLVM 21을 지원하지 않는다. 이 경로에 명시된 선택지는 18·19·20·22다.
따라서 개발 PC에서 빌드가 됐다는 것만으로 배포 서버의 조합까지 확인한 셈은 아니다. CPU용 환경과 CUDA용 환경을 함께 관리하는 팀이라면, PoCL 버전 옆에 LLVM 버전과 드라이버 경로도 붙여 두는 편이 문제를 재현하기 쉽다.
Product economics & specifications
| Dimension | Details | Buyer implication | Evidence |
|---|---|---|---|
| Software license | MIT-licensed open-source download; no software license purchase required. Checked Sep 5, 2026. | Hardware, integration and support costs are separate. | verified · Source |
| Likely users | Teams retaining OpenCL code while evaluating RISC-V or x86 CPU execution. | Fit analysis, not an observed customer list. | analysis · analysis |
| CPU toolchain | Minimum LLVM 18; CPU support includes LLVM 22 and 23. | An LLVM 17 build environment needs updating. | verified · Source |
| CUDA exception | Supported LLVM choices: 18, 19, 20, 22. LLVM 21 is unsupported. | Do not infer one continuous version range. | verified · Source |
| Conformance scope | Listed x86-64 and RISC-V CPU configurations; July records use PoCL 7.2-pre. | Neither every device nor a performance ranking. | verified · Source |
| Optional features | OpenCL 3.0 makes functionality beyond 1.2 optional. | Query the features your application uses. | verified · Source |
| Build settings | ENABLE_CONFORMANCE=ON alone does not guarantee conformance. | Check the tested build configuration as well. | verified · Source |
| Deployment budget | No quantified integration cost or workload speedup verified for this article. | Budget maintenance and measure the actual application. | unavailable · unavailable |
다운로드 비용보다 오래 남는 것은 운영 비용
PoCL은 MIT 라이선스로 제공된다. 소프트웨어 라이선스 비용과 별개로, 팀에는 빌드 환경 유지, 필요한 기능 확인, 회귀 시험과 성능 측정이라는 일이 남는다. 기존 OpenCL 자산을 유지하면서 RISC-V를 평가하려는 개발팀과 연구실이 먼저 살펴볼 만하다는 것은 이런 조건에 근거한 판단이다. 실제 도입 고객이나 비용 절감 실적을 확인했다는 뜻은 아니다.
VLSI Korea view: 코드를 다시 쓰는 일이 줄어들면 반갑다. 그만큼 확인할 일이 사라지는 것은 아니다.
이번 릴리스에서 먼저 얻을 것은 새 장비를 살 이유보다, 이미 가진 코드로 다른 실행 환경을 평가할 기회에 가깝다. 짧은 계산부터 결과를 맞춰 보고, 그다음 실제 작업의 시간을 재면 된다. 이 글에서는 직접 성능 시험을 수행하지 않았으며 속도 향상 수치를 제시하지 않는다.
공개 프로젝트 자료와 Khronos 기록을 바탕으로 AI가 조사·작성을 보조했으며, 별도의 독립 검토를 거쳤다. 확인 기준: 2026년 9월 5일.