Skip to content

Commit 340608c

Browse files
committed
Added Dockerfile for NVIDIA GPUs with OpenCL
0 parents  commit 340608c

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
## Docker File for running GPULlama3.java with TornadoVM on NVIDIA GPUs
2+
## Adapted for GPULlama3.java v0.1.0-beta
3+
FROM nvidia/opencl
4+
5+
LABEL MAINTAINER Athanasios Stratikopoulos <[email protected]>
6+
7+
# Base setup
8+
RUN apt-get update -q && apt-get install -qy \
9+
python3 build-essential vim git cmake maven openjdk-17-jdk python3-pip \
10+
wget && rm -rf /var/lib/apt/lists/*
11+
12+
RUN python3 -m pip install wget
13+
14+
RUN ln -s /usr/bin/python3 /usr/bin/python
15+
16+
RUN java -version
17+
RUN javac -version
18+
19+
# Set JDK 17 explicitly
20+
ENV PATH /usr/lib/jvm/java-17-openjdk-amd64/bin:$PATH
21+
ENV JAVA_HOME /usr/lib/jvm/java-17-openjdk-amd64
22+
ENV MAVEN_CONFIG=/root/.m2
23+
24+
# Build GPULlama3.java and TornadoVM
25+
WORKDIR /gpullama3/
26+
RUN git clone --recursive https://github.com/beehive-lab/GPULlama3.java.git
27+
WORKDIR /gpullama3/GPULlama3.java
28+
RUN git checkout v0.1.0-beta && git submodule update --recursive
29+
30+
# Install TornadoVM backend
31+
WORKDIR /gpullama3/GPULlama3.java/external/tornadovm
32+
ENV CMAKE_ROOT /usr
33+
34+
# Build TornadoVM and install its artifacts
35+
RUN ./bin/tornadovm-installer --jdk jdk21 --backend opencl --mvn_single_threaded
36+
37+
#COPY gpullama3-installer /gpullama3/GPULlama3.java
38+
#WORKDIR /gpullama3/GPULlama3.java
39+
#RUN ./gpullama3-installer
40+
41+
## Set environment variables from set_paths manually
42+
ENV JAVA_HOME=/gpullama3/GPULlama3.java/external/tornadovm/etc/dependencies/TornadoVM-jdk21/jdk-21.0.7/
43+
ENV PATH=/gpullama3/GPULlama3.java/external/tornadovm/bin/bin:/gpullama3/GPULlama3.java/bin:$PATH
44+
ENV TORNADO_SDK=/gpullama3/GPULlama3.java/external/tornadovm/bin/sdk
45+
ENV TORNADO_ROOT=/gpullama3/GPULlama3.java/external/tornadovm
46+
ENV LLAMA_ROOT=/gpullama3/GPULlama3.java
47+
48+
# Fix InaccessibleObjectException by configuring MAVEN_OPTS
49+
ENV MAVEN_OPTS="--add-opens java.base/java.lang=ALL-UNNAMED"
50+
51+
# Build GPULlama3.java with verbose output and custom Maven repo
52+
WORKDIR /gpullama3/GPULlama3.java
53+
RUN bash -c "mvn clean package -DskipTests -Dmaven.repo.local=/root/.m2/repository/"
54+
55+
WORKDIR /data
56+
VOLUME ["/data"]

0 commit comments

Comments
 (0)