`nvptx64-nvidia-cuda` 타겟의 베이스라인을 높이기
Source: Rust Blog
Overview
nvptx64-nvidia-cuda 타겟은 NVIDIA GPU용 컴파일 타겟입니다. 이 타겟을 사용할 때 최종 출력물은 PTX가 됩니다. 출력물을 결정하는 두 가지 버전 선택이 있습니다:
- GPU 아키텍처 (예:
sm_70,sm_80, …) – PTX를 실행할 수 있는 GPU를 결정합니다. - PTX ISA 버전 – 어떤 CUDA 드라이버 버전이 PTX를 로드하고 JIT‑컴파일할 수 있는지를 결정합니다.
Rust 1.97(2026년 7월 9일 릴리스 예정)에서는 nvptx64-nvidia-cuda의 기본 PTX ISA 버전과 GPU 아키텍처가 상승합니다. 이 변경은 Rust 컴파일러(rustc)와 관련 호스트 도구 모두에 영향을 미쳐, 이전 GPU와 이전 CUDA 드라이버와 호환되는 PTX 아티팩트를 생성할 수 없게 됩니다.
New minimum supported versions
- PTX ISA 7.0 (CUDA 11 드라이버 이상 필요)
- SM 7.0 (컴퓨트 능력이 7.0 미만인 GPU는 더 이상 지원되지 않음)
Why are the requirements being changed?
지금까지 Rust는 다양한 GPU 아키텍처와 PTX ISA 버전에 대해 PTX를 내보내는 것을 지원해 왔습니다. 실제로는 몇몇 결함이 존재해 정상적인 Rust 코드가 컴파일러 크래시나 잘못된 컴파일을 일으킬 수 있었습니다. 기본값을 올리면 이러한 문제를 해결하고 남아 있는 하드웨어에 대한 지원을 보다 완전하게 할 수 있습니다.
지원 중단은 해당 아키텍처를 사용하던 사용자에게 영향을 미칩니다. 가장 최근에 영향을 받는 GPU 아키텍처는 2017년 출시된 것이며, NVIDIA에서도 더 이상 적극적으로 지원하지 않으므로 전체적인 영향은 제한적일 것으로 예상됩니다.
이러한 오래된 아키텍처를 계속 지원하려면 상당한 노력이 필요합니다. 지원을 제거함으로써 현재 지원되는 하드웨어에 대한 정확성과 성능을 개선하는 데 개발 자원을 집중할 수 있습니다.
What happens when I update to Rust 1.97?
CUDA 드라이버가 PTX ISA 7.0을 지원하지 않는 경우(예: CUDA 10‑시대 드라이버 및 그 이하), Rust 1.97은 해당 환경에 호환되는 PTX를 생성할 수 없게 됩니다.
마찬가지로 컴퓨트 능력이 7.0 미만인 GPU(예: Maxwell 또는 Pascal)에서 실행하려는 경우, Rust 1.97은 해당 GPU에 맞는 PTX를 생성할 수 없게 됩니다.
CUDA 11 이상 드라이버와 컴퓨트 능력 7.0 이상 GPU를 대상으로 한다고 가정하면:
- 기본 동작:
-C target-cpu를 지정하지 않으면 새로운 기본값이sm_70이 되며, 빌드는 계속 동작하지만 Volta 이전 GPU와는 호환되지 않게 됩니다. - 현재 오래된
-C target-cpu(예:sm_60)를 지정하고 있다면:- 플래그를 제거하고 기본값인
sm_70을 사용하거나, 또는 sm_70혹은 그 이후 아키텍처로 업데이트합니다.
- 플래그를 제거하고 기본값인
- 이미
-C target-cpu=sm_70(또는 그 이후)으로 지정하고 있다면: 이번 업데이트로 인한 동작 변화는 없습니다.
nvptx64-nvidia-cuda의 빌드 및 설정에 대한 자세한 내용은 플랫폼 지원 문서를 참고하십시오.