소스 정보
- 저장소
- LuisaGroup/LuisaCompute
- 최근 소스 활동
- 2026년 7월 20일 15:32
- 감지된 SKILL.md 언어
- 영어
- 스타
- 1,043
- 포크
- 108
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/LuisaGroup/LuisaCompute --skill cmake명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | cmake |
| description | CMake build options, custom functions, and backend patterns for LuisaCompute. |
Requirements: CMake 3.26+, Ninja (recommended), C++20 compiler (MSVC/Clang/GCC).
cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Release
cmake --build build
cmake --install build --prefix dist
Platform specifics:
Linux:
export CC=clang-20 CXX=clang++-20
cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Release
macOS:
export PATH="$PATH:/opt/homebrew/opt/llvm/bin"
export CC=/opt/homebrew/opt/llvm/bin/clang
export CXX=/opt/homebrew/opt/llvm/bin/clang++
export SDKROOT=$(xcrun --show-sdk-path)
cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Release
Windows: Requires VS Developer Command Prompt. Or use Python bootstrap:
import bootstrap
bootstrap.prepare_msvc_environment()
scripts/agent_windows_cmake.pyOne-shot configure + build + verify on Windows. CI-matching flags (LUISA_COMPUTE_ENABLE_RUST=OFF, LUISA_COMPUTE_ENABLE_REMOTE=OFF, LUISA_COMPUTE_ENABLE_CPU=OFF).
# Full pipeline: configure → build → verify
python scripts/agent_windows_cmake.py
# Individual steps
python scripts/agent_windows_cmake.py --config # configure only
python scripts/agent_windows_cmake.py --build # build only
python scripts/agent_windows_cmake.py --verify # check key .lib/.dll outputs
python scripts/agent_windows_cmake.py --clean # clear CMake cache
# Options
python scripts/agent_windows_cmake.py --type Debug # Debug build
python scripts/agent_windows_cmake.py -j 8 # limit parallel jobs
python scripts/agent_windows_cmake.py --clean --config # clean re-configure
Auto-finds cmake and ninja (PATH → .deps/ → pip). Auto-prepares MSVC environment via vswhere. Verifies: SPIRV-Tools-opt.lib, SPIRV-Tools.lib, luisa-ast.dll, luisa-core.dll.
| Option | Default | Description |
|---|---|---|
CMAKE_BUILD_TYPE | - | Release / Debug / RelWithDebInfo / MinSizeRel |
LUISA_COMPUTE_ENABLE_DSL | ON | C++ DSL |
LUISA_COMPUTE_ENABLE_CUDA | ON | CUDA backend |
LUISA_COMPUTE_ENABLE_METAL | ON | Metal backend (macOS only) |
LUISA_COMPUTE_ENABLE_DX | ON | DirectX backend (Windows only) |
LUISA_COMPUTE_ENABLE_VULKAN | ON | Vulkan backend |
LUISA_COMPUTE_ENABLE_HIP | OFF | HIP backend (work in progress) |
LUISA_COMPUTE_ENABLE_CPU | ON | CPU backend (requires Rust) |
LUISA_COMPUTE_ENABLE_REMOTE | ON | Remote backend (requires Rust) |
LUISA_COMPUTE_ENABLE_FALLBACK | ON | Fallback backend (requires LLVM + Embree) |
LUISA_COMPUTE_ENABLE_GUI | ON | GUI support (GLFW/ImGui) |
LUISA_COMPUTE_ENABLE_TENSOR | OFF | C++ DSL tensor extension |
LUISA_COMPUTE_ENABLE_CUDA_EXT_LCUB | OFF | CUDA extension: LCUB |
LUISA_COMPUTE_ENABLE_CLANG_CXX | OFF | ClangTooling-based C++ shading language |
LUISA_COMPUTE_ENABLE_RUST | ON if cargo found, else OFF | Rust/IR support; required for CPU/Remote |
LUISA_COMPUTE_ENABLE_VK_XIR_SPIRV | ON | Native XIR-to-SPIR-V codegen path for Vulkan |
LUISA_COMPUTE_ENABLE_VK_AST_LLVM_SPIRV | OFF | Experimental AST→LLVM SPIR-V path; requires LLVM's native SPIRV target |
LUISA_COMPUTE_USE_SYSTEM_* options exist for STL, GLFW, LMDB, REPROC, SPDLOG, XXHASH, YYJSON, MAGIC_ENUM, and MARL.
The two Vulkan SPIR-V codegen options are mutually exclusive. The LLVM path
also builds/links the common luisa-compute-spirv support library because the
Vulkan artifact codec shares its SPIR-V validation and feature-reconciliation
utilities.
CI minimal build:
cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Release \
-D LUISA_COMPUTE_ENABLE_RUST=OFF -D LUISA_COMPUTE_ENABLE_REMOTE=OFF \
-D LUISA_COMPUTE_ENABLE_CPU=OFF
cmake --build build
| Prefix | Example | Purpose |
|---|---|---|
luisa-compute-<module> | luisa-compute-core | Internal library |
luisa-compute-backend-<name> | luisa-compute-backend-cuda | Backend plugin (output: luisa-backend-<name>) |
luisa-compute-ext-<name> | luisa-compute-ext-spdlog | Third-party ext |
luisa::compute | Alias | Interface target for all core modules |
luisa-compute-include (INTERFACE, header-only)
→ luisa-compute-ext (INTERFACE, third-party deps)
→ luisa-compute-core (SHARED)
→ luisa-compute-ast (SHARED)
→ luisa-compute-xir (SHARED)
→ luisa-compute-ir (SHARED when Rust enabled)
→ luisa-compute-runtime (SHARED)
→ luisa-compute-dsl, luisa-compute-gui, luisa-compute-ir
→ luisa-compute-backends (INTERFACE aggregator)
Additional modules linked by the umbrella target luisa::compute include luisa-compute-vstl (object helper), luisa-compute-osl, luisa-compute-api, and luisa-compute-clangcxx.
luisa_compute_add_backend(name [SOURCES ...] [SUPPORT_DIR dir])Creates a backend plugin MODULE target. Links luisa-compute-ast, luisa-compute-runtime, and luisa-compute-gui. Output name is luisa-backend-<name> and runtime artifacts are installed to bin/. If SUPPORT_DIR is given, its contents are copied next to the runtime outputs and installed to bin/.
luisa_compute_add_backend(cuda SOURCES ${LUISA_COMPUTE_CUDA_SOURCES})
luisa_compute_install(target)Installs target with consistent destination paths.
luisa_compute_install(core SOURCES ${LUISA_COMPUTE_CORE_SOURCES})
luisa_compute_add_executable(name)Creates executable linked to luisa::compute.
luisa_compute_add_executable(my_app)
luisa_compute_add_test(name source [LABELS ...] [ARGS ...])File: src/tests/CMakeLists.txt. Builds one standalone executable per source. With LABELS, registers a CTest entry (CPU-only tests). Without LABELS, just builds the binary (GPU-using tests are invoked manually with a backend arg).
luisa_compute_add_test(test_basic_traits unit/core/test_basic_traits.cpp LABELS "unit;unit_core")
luisa_compute_add_test(test_my_gpu unit/runtime/test_my_gpu.cpp) # no CTest
luisa_compute_add_example(name source... [MIRROR_AS_TEST])File: examples/CMakeLists.txt. Builds example_<name> and, when MIRROR_AS_TEST is set, additionally builds a test_<name> mirror executable from the same sources. Reserved for auto-checkable examples (reference-image comparison, deterministic sims, headless compute). GUI/interop demos must omit the flag.
luisa_compute_add_example(example_path_tracing rendering/path_tracing.cpp MIRROR_AS_TEST)
luisa_compute_add_example(example_swapchain_qt gui/swapchain_qt.cpp) # no mirror
luisa_example_pair_link(name <link-args>)Companion to luisa_compute_add_example. Calls target_link_libraries on both example_<name> and its test_<name> mirror (if any). Use whenever an example needs extra libs.
luisa_compute_add_example(example_cuda_lcub extension/cuda_lcub.cpp MIRROR_AS_TEST)
luisa_example_pair_link(example_cuda_lcub PRIVATE CUDA::cudart CUDA::cuda_driver)
Backends built as MODULE (runtime-loadable shared libs):
luisa_compute_add_backend(cuda SOURCES ${LUISA_COMPUTE_CUDA_SOURCES})
Key: output renamed to luisa-backend-<name>, installed to bin/, supports luisa_embed_device_lib for builtin device libs.
File: src/rust/CMakeLists.txt
Rust support is auto-enabled when a Rust toolchain is found (unless LUISA_COMPUTE_ENABLE_RUST=OFF is passed); the CPU and Remote backends require it. The custom command invokes cargo build (profile: dev for Debug, release for Release). CMake targets:
luisa-compute-rust-meta (INTERFACE): static Rust libsluisa_compute_backend_impl (INTERFACE): shared Rust backendEach src/ext/<lib>/:
if (LUISA_COMPUTE_USE_SYSTEM_<LIB>)
find_package(<LIB> REQUIRED)
target_link_libraries(luisa-compute-ext INTERFACE <target>)
target_compile_definitions(luisa-compute-ext INTERFACE LUISA_USE_SYSTEM_<LIB>=1)
else()
add_subdirectory(<lib>)
target_link_libraries(luisa-compute-ext INTERFACE <target>)
luisa_compute_install_extension(<target> ...)
endif()
${CMAKE_BINARY_DIR}/bin → Runtime outputs (DLLs, executables)
${CMAKE_BINARY_DIR}/lib → Archive outputs (static libs, PDBs)
@loader_path, @loader_path/../bin, @loader_path/../lib$ORIGIN, $ORIGIN/../bin, $ORIGIN/../libLUISA_COMPUTE_BUILD_TESTS | ON in master project | Build tests, examples and tutorials |
LUISA_COMPUTE_ENABLE_SAFE_MODE | OFF | Runtime safe mode |
LUISA_COMPUTE_ENABLE_UNITY_BUILD | OFF | Unity build |
LUISA_COMPUTE_ENABLE_SANITIZERS | OFF | Address/UB sanitizers |
LUISA_COMPUTE_ENABLE_LTO | OFF | Link-time optimization (release builds only) |
LUISA_COMPUTE_ENABLE_SCCACHE | ON (non-MSVC) | Use sccache compiler launcher |
LUISA_COMPUTE_CHECK_BACKEND_DEPENDENCIES | ON | Auto-disable backends with missing dependencies |
LUISA_COMPUTE_ENABLE_WAYLAND | OFF (Linux) | Wayland support in GUI/Vulkan swapchains |
LUISA_COMPUTE_USE_SYSTEM_LIBS | OFF | Prefer system libraries; also enables per-lib USE_SYSTEM_* overrides |
LUISA_COMPUTE_DOWNLOAD_OIDN | OFF | Download OpenImageDenoise |
LUISA_COMPUTE_DOWNLOAD_NVCOMP | OFF (if CUDA) | Download nvCOMP for CUDA decompression |