LuisaGroup/LuisaCompute
High-Performance Rendering Framework on Stream Architectures
해결하는 문제
LuisaCompute는 통합성, 프로그래머블성, 성능 사이의 격차를 메우기 위해 설계된 고성능 크로스플랫폼 컴퓨팅 프레임워크입니다. 개발자는 한 번의 계산 커널 작성으로 CUDA, DirectX, Metal, CPU 등 다양한 하드웨어 백엔드에서 실행할 수 있으며, 각 플랫폼용 별도의 쉐이더 코드를 작성할 필요가 없습니다.
작동 방식
이 프레임워크는 세 가지 주요 구성 요소로 구성됩니다:
- 임베디드 도메인 특화 언어(DSL): 현대 C++에 임베디드된 DSL을 사용하여 C++ 구문으로 커널을 작성할 수 있습니다. 메타프로그래밍과 연산자 오버로딩을 활용해 커널을 추상 구문 트리(AST)로 추적한 후, JIT 컴파일을 통해 플랫폼별 쉐이더 소스 코드로 변환합니다.
- 통합 런타임: 고수준 프론트엔드 인터페이스와 저수준 백엔드 API 사이를 연결하는 추상 런타임 계층입니다. 정적 타입의 C++ 객체(리소스 래퍼)를 제공하여 메모리 관리와 명령 스케줄링을 가능하게 하며, 의존성 자동 탐지로 하드웨어 활용도를 최적화합니다.
- 다중 백엔드: 특화된 백엔드가 AST와 중간 명령을 CUDA, Metal, DirectX, 그리고 Rust로 구현된 CPU 백업용 네이티브 커널 실행으로 변환합니다.
대상 사용자
고성능 그래픽 애플리케이션, 렌더링 엔진, 또는 일반 목적의 스트림 처리 소프트웨어를 개발하는 개발자에게 적합합니다. 성능을 희생하지 않고 크로스플랫폼 호환성을 확보하고 싶은 분들께 추천합니다.
주요 특징
- 통합 작성: 호스트 측 로직과 디바이스 측 커널 모두 현대 C++로 작성 가능.
- 크로스플랫폼 지원: CUDA, DirectX, Metal, CPU용 네이티브 백엔드.
- Python 프론트엔드: 프레임워크 기능에 더 쉽게 접근할 수 있는 Python 인터페이스 제공.
- 자동 미분: 계산 작업에 대해 자동 미분을 지원.
- 리소스 관리: 고수준 래퍼를 통해 리소스 처리 및 명령 제출의 반복 코드를 제거.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트