|
| 1 | +# Docker Support for GPULlama3.java on NVIDIA GPUs |
| 2 | + |
| 3 | +Run **GPULlama3.java** on NVIDIA GPUs using Docker with either **OpenCL** or **PTX** support. |
| 4 | + |
| 5 | +--- |
| 6 | + |
| 7 | +## 🛠 Requirements |
| 8 | + |
| 9 | +- **NVIDIA GPU** with compatible drivers |
| 10 | +- **NVIDIA Container Toolkit** installed |
| 11 | + 👉 [Install Guide](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html) |
| 12 | + |
| 13 | +--- |
| 14 | + |
| 15 | +## 🚀 Quick Start |
| 16 | + |
| 17 | +### 1. Pull a Docker Image |
| 18 | + |
| 19 | +**OpenCL:** |
| 20 | +```bash |
| 21 | +docker pull beehivelab/gpullama3.java-nvidia-openjdk-opencl:latest |
| 22 | +``` |
| 23 | + |
| 24 | +**PTX:** |
| 25 | +```bash |
| 26 | +docker pull beehivelab/gpullama3.java-nvidia-openjdk-ptx:latest |
| 27 | +``` |
| 28 | + |
| 29 | +--- |
| 30 | + |
| 31 | +### 2. Clone the Runner Scripts Repository |
| 32 | + |
| 33 | +```bash |
| 34 | +git clone https://github.com/beehive-lab/docker-gpullama3.java |
| 35 | +cd docker-gpullama3.java |
| 36 | +``` |
| 37 | + |
| 38 | +--- |
| 39 | + |
| 40 | +### 3. Download a Model |
| 41 | + |
| 42 | +Download a model from huggingface, as shown in [GPULlama3.java](https://github.com/beehive-lab/GPULlama3.java#download-model-files). For example: |
| 43 | +```bash |
| 44 | +wget https://huggingface.co/beehive-lab/Llama-3.2-1B-Instruct-GGUF-FP16/resolve/main/beehive-llama-3.2-1b-instruct-fp16.gguf |
| 45 | +``` |
| 46 | + |
| 47 | +--- |
| 48 | + |
| 49 | +### 4. Run a Prompt |
| 50 | + |
| 51 | +**OpenCL Runner:** |
| 52 | +```bash |
| 53 | +./dockerized-llama-tornado-nvidia-opencl \ |
| 54 | + --gpu --opencl --verbose-init \ |
| 55 | + --model beehive-llama-3.2-1b-instruct-fp16.gguf \ |
| 56 | + --prompt "tell me a joke" |
| 57 | +``` |
| 58 | + |
| 59 | +**PTX Runner:** |
| 60 | +```bash |
| 61 | +./dockerized-llama-tornado-nvidia-ptx \ |
| 62 | + --gpu --ptx --verbose-init \ |
| 63 | + --model beehive-llama-3.2-1b-instruct-fp16.gguf \ |
| 64 | + --prompt "tell me a joke" |
| 65 | +``` |
| 66 | + |
| 67 | +> Sample Output: |
| 68 | +> ``` |
| 69 | +> Here's one: |
| 70 | +> What do you call a fake noodle? |
| 71 | +> An impasta! |
| 72 | +> ``` |
| 73 | +
|
| 74 | +--- |
| 75 | +
|
| 76 | +## 🧱 Build the GPULlama3.java Docker Images |
| 77 | +
|
| 78 | +To build the Docker images locally, use the provided `build.sh` script: |
| 79 | +
|
| 80 | +```bash |
| 81 | +./build.sh |
| 82 | +``` |
| 83 | +
|
| 84 | +### Build Options |
| 85 | + |
| 86 | +Build for **NVIDIA GPUs** using one of the following flags: |
| 87 | + |
| 88 | +- `--nvidia-jdk21-ocl` → Build image with **OpenCL** support and **JDK 21** |
| 89 | +- `--nvidia-jdk21-ptx` → Build image with **PTX** support and **JDK 21** |
| 90 | + |
| 91 | +Example: |
| 92 | +```bash |
| 93 | +./build.sh --nvidia-jdk21-ocl |
| 94 | +``` |
| 95 | + |
| 96 | +This will create a Docker image ready to run `GPULlama3.java` on NVIDIA GPUs with OpenCL. |
| 97 | + |
| 98 | +--- |
| 99 | + |
| 100 | +## License |
| 101 | + |
| 102 | +[](https://opensource.org/licenses/Apache-2.0) |
| 103 | + |
| 104 | +This project is developed at [The University of Manchester](https://www.manchester.ac.uk/), and it is open-source under the [Apache 2](https://github.com/beehive-lab/docker-gpullama3.java/blob/main/LICENSE) license. |
0 commit comments