Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

설치

std::offload는 사용자용 nightly 빌드에서 부분적으로 사용할 수 있습니다. 하지만 현재로서는 모든 기능을 사용하려면 누구나 여전히 rustc를 소스에서 직접 빌드해야 합니다.

Rustup 설치.

x86_64 Linux를 사용 중이라면 다음 명령으로 nightly 툴체인을 설치할 수 있습니다.

rustup +nightly component add offload

빌드 방법

그렇지 않다면 Rust 저장소를 클론하고 구성해야 합니다:

git clone git@github.com:rust-lang/rust
cd rust
./configure --enable-llvm-link-shared --release-channel=nightly --enable-llvm-assertions --enable-llvm-offload --enable-llvm-enzyme --enable-clang --enable-lld --enable-option-checking --enable-ninja --disable-docs

그런 다음 다음 명령으로 rustc를 빌드할 수 있습니다:

./x build --stage 1 library

그런 다음 rustc toolchain link를 사용하면 cargo를 통해 이 툴체인을 사용할 수 있습니다:

rustup toolchain link offload build/host/stage1
rustup toolchain install nightly # enables -Z unstable-options

LLVM 자체의 빌드 방법

git clone git@github.com:llvm/llvm-project
cd llvm-project
mkdir build
cd build
cmake -G Ninja ../llvm -DLLVM_TARGETS_TO_BUILD="host;AMDGPU;NVPTX" -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_PROJECTS="clang;lld" -DLLVM_ENABLE_RUNTIMES="offload;openmp" -DLLVM_ENABLE_PLUGINS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=.
ninja
ninja install

이렇게 하면 작동하는 LLVM 빌드를 얻을 수 있습니다.

테스트

offload 관련 테스트를 실행하려면 이 테스트 스크립트를 실행하십시오:

./x test --stage 1 tests/codegen-llvm/gpu_offload

CI를 로컬에서 테스트하려면 Docker로 테스트하기에 설명된 명령을 사용할 수 있습니다:

cargo run --manifest-path src/ci/citool/Cargo.toml run-local dist-x86_64-linux

이 명령은 모든 컴파일러 산출물을 obj 디렉터리에 저장합니다. 하지만 rustc 관련 코드를 수정한 경우에는 이 디렉터리를 삭제해야 할 수 있습니다. 그렇게 하지 않으면 Docker 이미지가 이전 상태를 캐시하기 때문입니다.

이 시점에서 서브모듈도 체크아웃되어 있어야 합니다.