File tree 7 files changed +140
-39
lines changed
crates/rustc_codegen_nvvm
7 files changed +140
-39
lines changed Load Diff This file was deleted.
Original file line number Diff line number Diff line change @@ -92,6 +92,15 @@ Other projects related to using Rust on the GPU:
92
92
cargo build
93
93
```
94
94
95
+ ## Use Rust-CUDA in Container Environments
96
+
97
+ ``` bash
98
+ # The distribution related Dockerfile are located in `container` folder.
99
+ # Taking ubuntu 24.04 as an example, run the following command in repository root:
100
+ docker build -f ./container/ubuntu24/Dockerfile -t rust-cuda-ubuntu24 .
101
+ docker run --rm --runtime=nvidia --gpus all -it rust-cuda-ubuntu24
102
+ ```
103
+
95
104
## License
96
105
97
106
Licensed under either of
Original file line number Diff line number Diff line change
1
+ FROM nvidia/cuda:12.8.1-cudnn-devel-rockylinux9
2
+
3
+ RUN dnf -y install \
4
+ openssl-devel \
5
+ pkgconfig \
6
+ redhat-rpm-config \
7
+ which \
8
+ xz \
9
+ zlib-devel
10
+
11
+ # Get LLVM 7 & libffi.so.6
12
+ WORKDIR /data/llvm7
13
+ RUN curl -sSf -L -O https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/l/libffi3.1-3.1-36.el9.x86_64.rpm
14
+ RUN curl -sSf -L -O https://dl.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/l/llvm7.0-7.0.1-7.el8.x86_64.rpm
15
+ RUN curl -sSf -L -O https://dl.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/l/llvm7.0-devel-7.0.1-7.el8.x86_64.rpm
16
+ RUN curl -sSf -L -O https://dl.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/l/llvm7.0-libs-7.0.1-7.el8.x86_64.rpm
17
+ RUN curl -sSf -L -O https://dl.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/l/llvm7.0-static-7.0.1-7.el8.x86_64.rpm
18
+ RUN dnf -y install ./*.rpm
19
+ RUN ln -s /usr/bin/llvm-config-7-64 /usr/bin/llvm-config
20
+
21
+ # Get Rust
22
+ RUN curl -sSf -L https://sh.rustup.rs | bash -s -- -y
23
+ ENV PATH="/root/.cargo/bin:${PATH}"
24
+
25
+ # Setup the workspace
26
+ ADD . /data/Rust-CUDA
27
+ WORKDIR /data/Rust-CUDA
28
+ RUN rustup show
29
+
30
+ ENV LLVM_LINK_STATIC=1
31
+ ENV RUST_LOG=info
Original file line number Diff line number Diff line change
1
+ FROM nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04
2
+
3
+ RUN apt-get update
4
+ RUN DEBIAN_FRONTEND=noninteractive apt-get -qq -y install \
5
+ build-essential \
6
+ curl \
7
+ libssl-dev \
8
+ libtinfo-dev \
9
+ pkg-config \
10
+ xz-utils \
11
+ zlib1g-dev
12
+
13
+ # Get LLVM 7
14
+ WORKDIR /data/llvm7
15
+ RUN curl -sSf -L -O http://mirrors.kernel.org/ubuntu/pool/universe/l/llvm-toolchain-7/llvm-7_7.0.1-12_amd64.deb
16
+ RUN curl -sSf -L -O http://mirrors.kernel.org/ubuntu/pool/universe/l/llvm-toolchain-7/llvm-7-dev_7.0.1-12_amd64.deb
17
+ RUN curl -sSf -L -O http://mirrors.kernel.org/ubuntu/pool/universe/l/llvm-toolchain-7/libllvm7_7.0.1-12_amd64.deb
18
+ RUN curl -sSf -L -O http://mirrors.kernel.org/ubuntu/pool/universe/l/llvm-toolchain-7/llvm-7-runtime_7.0.1-12_amd64.deb
19
+ RUN apt-get install -y ./*.deb
20
+ RUN ln -s /usr/bin/llvm-config-7 /usr/bin/llvm-config
21
+
22
+ # Get Rust
23
+ RUN curl -sSf -L https://sh.rustup.rs | bash -s -- -y
24
+ ENV PATH="/root/.cargo/bin:${PATH}"
25
+
26
+ # Setup the workspace
27
+ ADD . /data/Rust-CUDA
28
+ WORKDIR /data/Rust-CUDA
29
+ RUN rustup show
30
+
31
+ ENV LLVM_LINK_STATIC=1
32
+ ENV RUST_LOG=info
Original file line number Diff line number Diff line change
1
+ FROM nvidia/cuda:12.8.1-cudnn-devel-ubuntu20.04
2
+
3
+ RUN apt-get update
4
+ RUN DEBIAN_FRONTEND=noninteractive apt-get -qq -y install \
5
+ build-essential \
6
+ curl \
7
+ libssl-dev \
8
+ libtinfo-dev \
9
+ pkg-config \
10
+ xz-utils \
11
+ zlib1g-dev
12
+
13
+ # Get LLVM 7
14
+ WORKDIR /data/llvm7
15
+ RUN curl -sSf -L -O http://mirrors.kernel.org/ubuntu/pool/universe/l/llvm-toolchain-7/llvm-7_7.0.1-12_amd64.deb
16
+ RUN curl -sSf -L -O http://mirrors.kernel.org/ubuntu/pool/universe/l/llvm-toolchain-7/llvm-7-dev_7.0.1-12_amd64.deb
17
+ RUN curl -sSf -L -O http://mirrors.kernel.org/ubuntu/pool/universe/l/llvm-toolchain-7/libllvm7_7.0.1-12_amd64.deb
18
+ RUN curl -sSf -L -O http://mirrors.kernel.org/ubuntu/pool/universe/l/llvm-toolchain-7/llvm-7-runtime_7.0.1-12_amd64.deb
19
+ RUN apt-get install -y ./*.deb
20
+ RUN ln -s /usr/bin/llvm-config-7 /usr/bin/llvm-config
21
+
22
+ # Get Rust
23
+ RUN curl -sSf -L https://sh.rustup.rs | bash -s -- -y
24
+ ENV PATH="/root/.cargo/bin:${PATH}"
25
+
26
+ # Setup the workspace
27
+ ADD . /data/Rust-CUDA
28
+ WORKDIR /data/Rust-CUDA
29
+ RUN rustup show
30
+
31
+ ENV LLVM_LINK_STATIC=1
32
+ ENV RUST_LOG=info
Original file line number Diff line number Diff line change
1
+ FROM nvidia/cuda:12.8.1-cudnn-devel-ubuntu24.04
2
+
3
+ RUN apt-get update
4
+ RUN DEBIAN_FRONTEND=noninteractive apt-get -qq -y install \
5
+ build-essential \
6
+ curl \
7
+ libssl-dev \
8
+ libtinfo-dev \
9
+ pkg-config \
10
+ xz-utils \
11
+ zlib1g-dev
12
+
13
+ # Get LLVM 7 & libffi7
14
+ WORKDIR /data/llvm7
15
+ RUN curl -sSf -L -O http://security.ubuntu.com/ubuntu/pool/universe/libf/libffi7/libffi7_3.3-5ubuntu1_amd64.deb
16
+ RUN curl -sSf -L -O http://mirrors.kernel.org/ubuntu/pool/universe/l/llvm-toolchain-7/llvm-7_7.0.1-12_amd64.deb
17
+ RUN curl -sSf -L -O http://mirrors.kernel.org/ubuntu/pool/universe/l/llvm-toolchain-7/llvm-7-dev_7.0.1-12_amd64.deb
18
+ RUN curl -sSf -L -O http://mirrors.kernel.org/ubuntu/pool/universe/l/llvm-toolchain-7/libllvm7_7.0.1-12_amd64.deb
19
+ RUN curl -sSf -L -O http://mirrors.kernel.org/ubuntu/pool/universe/l/llvm-toolchain-7/llvm-7-runtime_7.0.1-12_amd64.deb
20
+ RUN apt-get install -y ./*.deb
21
+ RUN ln -s /usr/bin/llvm-config-7 /usr/bin/llvm-config
22
+
23
+ # Get Rust
24
+ RUN curl -sSf -L https://sh.rustup.rs | bash -s -- -y
25
+ ENV PATH="/root/.cargo/bin:${PATH}"
26
+
27
+ # Setup the workspace
28
+ ADD . /data/Rust-CUDA
29
+ WORKDIR /data/Rust-CUDA
30
+ RUN rustup show
31
+
32
+ ENV LLVM_LINK_STATIC=1
33
+ ENV RUST_LOG=info
Original file line number Diff line number Diff line change @@ -350,8 +350,9 @@ fn rustc_llvm_build() {
350
350
351
351
#[ cfg( not( target_os = "windows" ) ) ]
352
352
fn link_llvm_system_libs ( llvm_config : & Path , components : & [ & str ] ) {
353
- let mut cmd = Command :: new ( llvm_config) ;
354
- cmd. arg ( "--system-libs" ) ;
353
+ let ( _, llvm_link_arg) = detect_llvm_link ( ) ;
354
+ let mut cmd: Command = Command :: new ( llvm_config) ;
355
+ cmd. arg ( llvm_link_arg) . arg ( "--system-libs" ) ;
355
356
356
357
for comp in components {
357
358
cmd. arg ( comp) ;
You can’t perform that action at this time.
0 commit comments