Install KDB-X and the GPU Module¶
This page explains how to install KDB-X with a GPU-enabled license, download the GPU module, and run the application on a host or in an NVIDIA container.
Install KDB-X¶
Install KDB-X using the KDB-X install guide.
Download the GPU module¶
- Retrieve a KDB-X GPU-enabled license and download the GPU module from the KX downloads portal.
- Save the GPU module in
$HOME/.kx/mod/kx.
Note
These instructions use the default KDB-X installation location $HOME/.kx. If you installed KDB-X elsewhere, adjust the code examples to match your location.
The folder structure looks similar to:
~/.kx/mod/kx/
├── ai
├── gpu.li64.so ← (gpu module)
├── kfk
├── kurl
├── objstor
├── pq
└── rest.q_
For more information on modules, refer to modules.
Run the application¶
With KDB-X and the GPU module installed, run the application directly on the host or in an NVIDIA container (requires Docker).
Non-containerized¶
If you run directly on the host, install the CUDA Toolkit on the host and ensure the CUDA runtime and shared libraries are available to the application.
Load the KDB-X GPU module and inspect the available APIs:
q).gpu:use[`kx.gpu][`init] ([copy:`async;alloc:`simple])
q)key .gpu
`cfg`to`from`sync`type`ndev`gdev`sdev`mdev`select`append`bin`iasc`asc`xasc`dbg`hex`zero`Qajf0`ajf0`aj`aj0`ajf
Containerized app with CUDA dependencies¶
We recommend using NVIDIA containers. To run the app, use the following Dockerfile examples (covering ubuntu24.04 and rockylinux10 for CUDA 13.1 built apps):
Ubuntu example
FROM nvidia/cuda:13.1.0-runtime-ubuntu24.04
RUN apt-get update && \
apt-get install -y --no-install-recommends \
curl \
unzip \
zip \
ca-certificates \
build-essential
RUN mkdir /opt/kx
WORKDIR /opt/kx/app
ENTRYPOINT ["/opt/kx/bin/q"]
Red Hat example
FROM nvidia/cuda:13.1.0-runtime-rockylinux10
RUN dnf install -y \
curl \
unzip \
zip \
ca-certificates \
gcc \
gcc-c++ \
make \
libubsan && \
dnf clean all
RUN mkdir /opt/kx
WORKDIR /opt/kx/app
ENTRYPOINT ["/opt/kx/bin/q"]
To build the image:
docker build -f Dockerfile -t kdbx-gpu .
docker run --gpus all -it -p 1234:1234 -v /home/mmcphillips/.kx:/opt/kx kdbx-gpu -p 1234
Warning
Ensure the --gpus flag is passed to docker run, otherwise, you will see the following error:
'no kexport: libcuda.so.1: cannot open shared object file: No such file or directory