서비스 핫라인
RISC-V는 이 ISA(명령어 집합 아키텍처)가 광범위한 사용자 정의를 허용하고 이해하기 쉽기 때문에 컴퓨팅 분야에서 가장 인기 있는 주제 중 하나였습니다. 게다가 전체 오픈 소스, 라이센스가 필요 없다는 이점도 있습니다. RISC-V ISA를 기반으로 범용 GPU를 설계하는 프로젝트도 있으며 이제 Nvidia의 CUDA 소프트웨어 라이브러리가 Vortex RISC-V GPGPU 플랫폼으로 포팅되는 것을 목격하고 있습니다.
Nvidia의 CUDA(Computing Unified Device Architecture)는 Nvidia의 그래픽 카드 제품군에서 실행되는 고유한 컴퓨팅 플랫폼과 API(애플리케이션 프로그래밍 인터페이스)를 나타냅니다. CUDA 지원을 위해 애플리케이션이 작성되면 시스템이 CUDA 기반 GPU를 발견하자마자 코드의 GPU 가속이 많이 발생합니다.
오늘 연구원들은 Vortex라는 RISC-V GPGPU 프로젝트에서 CUDA 소프트웨어 툴킷 지원을 활성화하는 방법을 조사했습니다. Vortex RISC-V GPGPU는 RV32IMF ISA를 기반으로 시스템 전체에 RISC-V GPU를 제공하도록 설계되었습니다. 이는 32비트 코어가 1코어에서 32코어 GPU 설계로 확장될 수 있음을 의미합니다. OpenCL 1.2 그래픽 API를 지원하며 현재 일부 CUDA 작업도 지원합니다.
연구원들은 다음과 같이 설명합니다. "...이 프로젝트에서 우리는 엔드 투 엔드 CUDA 마이그레이션을 지원하는 파이프라인을 제안하고 구축합니다. 파이프라인은 CUDA 소스 코드를 입력으로 받아들이고 확장된 RISC-V GPU 아키텍처에서 실행합니다. 파이프라인은 CUDA 소스 코드를 NVVM IR로 변환, NVVM IR을 SPIR-V IR로 변환, SPIR-V IR을 POCL로 전달하여 RISC-V 바이너리 가져오기, 마지막으로 확장된 RISC-V GPU 바이너리 파일 아키텍처에서 실행 등 여러 단계로 구성됩니다. "
위 이미지는 프로세스를 시각화하여 작동시키는 모든 단계를 보여줍니다. 간단히 말해서 CUDA 소스 코드는 오픈 소스 LLVM IR을 기반으로 하는 NVVM IR이라는 IR(중간 표현) 형식으로 표현됩니다. 나중에 SPIR-V(Standard Portable Intermediate Representation) IR로 변환되었으며, 이후 POCL이라는 OpenCL 표준의 이식 가능한 오픈 소스 구현으로 전달되었습니다. Vortex는 OpenCL을 지원하므로 지원되는 코드를 제공하고 문제없이 실행할 수 있습니다.
이 복잡한 프로세스에 대한 자세한 내용을 보려면 아래를 클릭하여 원본 기사를 읽어보세요. 중요한 것은 RISC-V GPGPU에서 CUDA를 실행하기 위한 노력에 대해 이 연구원들에게 감사해야 한다는 것입니다. 이는 현재로서는 작은 단계에 불과하지만 오늘날 Nvidia의 GPU 라인업과 마찬가지로 RISC-V가 컴퓨팅 애플리케이션을 가속화하는 데 사용되는 시대의 시작일 수 있습니다.
확장 읽기: RISC-V가 GPU를 변경할 수 있나요?
GPU 아키텍처를 연구한 사람이라면 이것이 벡터 프로세서의 SIMD 구성이라는 것을 알고 있습니다. 이는 시뮬레이션 실행과 훌륭한 게임부터 로봇에게 AI를 얻는 방법을 가르치고 똑똑한 사람들이 주식 시장을 조작하도록 돕는 것까지 모든 것에 사용되는 매우 효율적인 병렬 프로세서입니다. 이 글을 쓰는 동안에도 문법을 확인합니다.
하지만 GPU 분야는 비공개 분야가 되었고, 내부 작업은 IP가 담당하게 되었고 효과적인 AMD, Intel, Nvidia와 같은 개발자의 공급. 3D 그래픽 및 미디어 처리를 위해 설계된 새로운 그래픽 명령어 세트가 있다면 어떨까요? 글쎄요, 있을 수도 있습니다.
새로운 명령어는 RISC-V 기본 벡터 명령어 세트를 기반으로 구축되었습니다. 핵심 RISC-V ISA의 정신에 따라 계층화된 확장으로 새로운 그래프별 데이터 유형에 대한 지원을 추가할 것입니다. 벡터, 사전 수학, 픽셀 및 텍스처, Z/프레임 버퍼 작업을 지원합니다. 융합된 CPU-GPU ISA일 수 있습니다. library - RISC 3D 그룹에서는 명령어 길이가 64비트이기 때문에 이를 RV1X(그림 64)라고 부릅니다(32비트로는 강력한 ISA를 지원하기에 충분하지 않습니다).
그룹은 자신의 동기와 목표가 맞춤형 프로그래밍 가능성과 확장성을 갖춘 작고 효율적인 디자인을 만드는 것이라고 밝혔습니다. 상용 제품과 경쟁하지 않고 저렴한 비용으로 IP 소유권과 개발을 제공해야 합니다. FPGA 및 ASIC 타겟에서 구현될 수 있으며 무료이며 오픈 소스입니다. 원래 설계는 Khronos Vulkan과 호환되고 다른 API(OpenGL, DirectX 등)를 지원하는 저전력 마이크로컨트롤러를 대상으로 합니다.
GPU + RISC-V
연구팀은 "3D API 호출을 미사용 CPU 메모리 공간으로 보내거나, 미사용 CPU 메모리 공간을 GPU 메모리 공간으로, 그 반대로 보내기 위해 RPC/IPC 호출 메커니즘을 사용할 필요가 없다"고 말했다.
"융합된" CPU-GPU ISA 접근 방식의 장점은 표준 그래픽 파이프라인을 마이크로코드에서 사용할 수 있고 사용자 정의 셰이더를 지원할 수 있다는 것입니다. 광선 추적 확장을 포함할 수도 있습니다.
디자인은 Vblock 형식이 될 것입니다(Libre GPU 노력으로):
- VLIW와 비슷하지만 실제로는 그렇지 않습니다.
- 명령어 블록 앞에는 해당 블록 내의 스칼라 명령어에 대한 추가 컨텍스트를 제공하는 레지스터 마커가 있습니다.
- 하위 블록에는 벡터 길이, 회전, 벡터/너비 오버레이 및 예측이 포함됩니다.
- 이 모든 것이 스칼라 연산 코드에 추가됩니다!
- 벡터 opcode가 없습니다(필요하지도 않습니다).
- 벡터 컨텍스트에서는 다음과 같이 진행됩니다. 스칼라 연산 코드가 레지스터를 사용하고 해당 레지스터가 벡터 컨텍스트에 나열되면 벡터 모드가 활성화됩니다.
- 활성화하면 하드웨어 수준 for 루프가 여러 개의 연속 스칼라 연산(단 한 개가 아닌)을 내보냅니다.
- 구현자는 SIMD, 다중 문제, 단일 실행 등 원하는 방식으로 루프를 자유롭게 구현할 수 있습니다. 거의 모든 것.
RV32-V 벡터는 8~16개 요소의 32비트, 2비트 또는 4비트/요소 벡터 연산을 처리합니다. 3비트 및 64비트 고정 및 부동 소수점 XYZW 포인트에 대한 일반 128D 그래픽 렌더링 파이프라인에 대한 전용 지침도 있습니다. 8, 16, 24 및 32비트 RGBA 픽셀; 구성 요소당 8비트, 16비트 UVW 텍셀; 조명 및 재료 설정(Ia, ka, Id, kd, Is, ks 등).
속성 벡터는 4×4 행렬로 표현됩니다. 시스템은 기본적으로 2×2 및 3×3 행렬을 지원합니다. 벡터 지원은 AI 및 기계 학습 애플리케이션에서 흔히 사용되는 8비트 정수 데이터 유형을 사용하는 수치 시뮬레이션에도 적합할 수 있습니다.
스플라인, SubDiv 표면 및 패치와 같은 사용자 정의 래스터라이저를 디자인에 포함할 수 있습니다. 이 방법을 사용하면 사용자 정의 파이프라인 단계, 사용자 정의 지오메트리/픽셀/프레임 버퍼 단계, 사용자 정의 하위 분할기 및 사용자 정의 인스턴스화 작업을 포함할 수도 있습니다.
RV64X
-
명령/데이터 SRAM 캐시(32kB)
-
마이크로코드 SRAM(8kB)
-
이중 기능 명령어 디코더(RV32V 및 X용으로 배선됨, 맞춤형 ISA용 마이크로코드 명령어 디코더)
-
쿼드 벡터 ALU(32비트/ALU 고정/부동)
-
136비트 레지스터 파일(1k 요소)
-
특수 기능 유닛
-
텍스처 유닛
-
구성 가능한 로컬 프레임 버퍼
RV64X는 확장 가능한 아키텍처입니다(그림 2). 사용자 정의 데이터 유형에 대해 구성 가능한 레지스터를 사용하는 것과 마찬가지로 융합 방법도 새로운 것입니다. 사용자 정의 SRAM 기반 마이크로코드를 사용하여 맞춤형 래스터라이저 단계, 광선 추적, 머신 비전 및 머신 러닝과 같은 확장 기능을 구현할 수 있습니다. 단일 디자인은 독립형 그래픽 마이크로 컨트롤러 또는 확장 가능한 셰이더 장치가 있는 멀티 코어 솔루션에 적용될 수 있습니다.
RISC-V에 대한 그래픽 확장으로 확장성과 다국어 지원이 가능합니다. 이를 통해 더 많은 혁신으로 이어지는 더 높은 수준의 사용 사례가 가능해집니다.
무엇 향후 계획
RV64X 사양은 아직 초기 개발 단계이므로 변경될 수 있습니다. 토론 포럼이 구축되고 있습니다. 즉각적인 목표는 명령어 세트 시뮬레이터를 사용하여 예제 구현을 구축하는 것입니다. 이는 오픈 소스 프로젝트로 설계된 맞춤형 IP의 소스 IP 및 FPGA 구현을 사용하여 열립니다.
면책 조항: 이 기사는 "반도체 산업 관찰"에서 복제되었습니다. 이 글은 저자의 개인적인 의견일 뿐 삭마이크로와 업계의 의견이 아니며, 전재 및 공유, 지원에 한해 지적 재산권 보호를 위해 전재할 경우 원본 출처와 작성자를 명시해 주시기 바랍니다. 침해가 있는 경우 당사에 연락하여 삭제하시기 바랍니다.




粤公网安备44030002007346号