Skip to content

Commit 90ce714

Browse files
authored
Merge pull request #812 from ducndh/main
Update Sirius results (March 2026)
2 parents ba15852 + 02562c7 commit 90ce714

File tree

4 files changed

+139
-180
lines changed

4 files changed

+139
-180
lines changed

sirius/benchmark.sh

Lines changed: 39 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,63 @@
11
#!/bin/bash
2+
# ClickBench benchmark for Sirius (GPU-accelerated DuckDB extension)
3+
#
4+
# Usage: ./benchmark.sh
5+
# Prerequisites: NVIDIA GPU with CUDA driver, internet access
26

3-
# Install dependencies
47
source dependencies.sh
58

6-
# Build Sirius
9+
# Verify pixi is available
10+
if ! command -v pixi &> /dev/null; then
11+
echo "Error: pixi not found. Check dependencies.sh output."
12+
exit 1
13+
fi
14+
15+
# ---------------------------------------------------------------------------
16+
# 1. Build Sirius
17+
# ---------------------------------------------------------------------------
18+
rm -rf sirius
719
git clone --recurse-submodules https://github.com/sirius-db/sirius.git
820
cd sirius
9-
git checkout clickbench
10-
source setup_sirius.sh
11-
make -j$(nproc)
12-
export PATH="$PATH:`pwd`/build/release/"
21+
22+
set -e
23+
24+
pixi install
25+
export LIBCUDF_ENV_PREFIX="$(pwd)/.pixi/envs/default"
26+
pixi run make -j"$(nproc)"
27+
28+
# Make the build artifacts available
29+
eval "$(pixi shell-hook)"
30+
export PATH="$(pwd)/build/release:$PATH"
1331
cd ..
1432

15-
# Load the data
33+
set +e
34+
35+
# ---------------------------------------------------------------------------
36+
# 2. Load data
37+
# ---------------------------------------------------------------------------
1638
wget --continue --progress=dot:giga 'https://datasets.clickhouse.com/hits_compatible/hits.parquet'
1739

1840
echo -n "Load time: "
1941
command time -f '%e' duckdb hits.db -f create.sql -f load.sql
2042

21-
# Run the queries
22-
43+
# ---------------------------------------------------------------------------
44+
# 3. Run benchmark
45+
# ---------------------------------------------------------------------------
2346
./run.sh 2>&1 | tee log.txt
2447

2548
echo -n "Data size: "
2649
wc -c hits.db
2750

28-
cat log.txt |
29-
grep -P '^\d|Killed|Segmentation|^Run Time \(s\): real' |
30-
sed -r -e 's/^.*(Killed|Segmentation).*$/null\nnull\nnull/; s/^Run Time \(s\): real\s*([0-9.]+).*$/\1/' |
51+
# ---------------------------------------------------------------------------
52+
# 4. Format results
53+
# ---------------------------------------------------------------------------
54+
cat log.txt | \
55+
grep -P '^\d|Killed|Segmentation|^Run Time \(s\): real' | \
56+
sed -r -e 's/^.(Killed|Segmentation).$/null\nnull\nnull/; s/^Run Time \(s\): real\s*([0-9.]+).*$/\1/' | \
3157
awk '{
3258
buf[i++] = $1
3359
if (i == 4) {
3460
printf "[%s,%s,%s],\n", buf[1], buf[2], buf[3]
3561
i = 0
3662
}
37-
}'
63+
}'

sirius/dependencies.sh

Lines changed: 9 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,15 @@
11
#!/bin/bash
2-
echo "Checking dependencies..."
2+
#!/bin/bash
3+
# Install system dependencies required to build Sirius and run ClickBench.
34

4-
# DuckDB dependencies
5+
echo "Installing system dependencies..."
56
sudo apt-get update -y
6-
sudo apt-get install -y git g++ ninja-build libssl-dev build-essential make ccache pip
7-
8-
# CMake
9-
CMAKE_REQUIRED_VERSION="3.30.4"
10-
if command -v cmake &>/dev/null; then
11-
CMAKE_INSTALLED_VERSION=$(cmake --version | head -n1 | awk '{print $3}')
12-
else
13-
CMAKE_INSTALLED_VERSION="0"
14-
fi
15-
16-
version_lt() {
17-
[ "$(printf '%s\n%s\n' "$1" "$2" | sort -V | head -n1)" != "$2" ]
18-
}
19-
20-
if version_lt "$CMAKE_INSTALLED_VERSION" "$CMAKE_REQUIRED_VERSION"; then
21-
echo "CMake version too old, installing version $CMAKE_REQUIRED_VERSION..."
22-
sudo apt purge --autoremove -y cmake
23-
wget -qO- "https://github.com/Kitware/CMake/releases/download/v$CMAKE_REQUIRED_VERSION/cmake-$CMAKE_REQUIRED_VERSION.tar.gz" | tar -xz
24-
cd "cmake-$CMAKE_REQUIRED_VERSION"
25-
./bootstrap
26-
make -j$(nproc)
27-
sudo make install
28-
cd ..
29-
rm -rf "cmake-$CMAKE_REQUIRED_VERSION"
30-
fi
7+
sudo apt-get install -y git wget curl build-essential time
318

32-
# CONDA
33-
MINICONDA_DIR="$HOME/miniconda3"
34-
if [[ ! -d "$MINICONDA_DIR" ]]; then
35-
echo "Miniconda not found. Installing..."
36-
ARCH=$(uname -m)
37-
if [[ "$ARCH" == "x86_64" ]]; then
38-
MINICONDA_URL="https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh"
39-
elif [[ "$ARCH" == "aarch64" ]]; then
40-
MINICONDA_URL="https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh"
41-
else
42-
echo "Unsupported architecture for Miniconda: $ARCH"
43-
exit 1
44-
fi
45-
wget -q $MINICONDA_URL -O /tmp/Miniconda3-latest.sh
46-
bash /tmp/Miniconda3-latest.sh -b -p $HOME/miniconda3
47-
rm /tmp/Miniconda3-latest.sh
9+
# Install Pixi package manager (used to manage CUDA/cuDF toolchain)
10+
if ! command -v pixi &> /dev/null; then
11+
echo "Pixi not found. Installing..."
12+
curl -fsSL https://pixi.sh/install.sh | sudo PIXI_BIN_DIR=/usr/local/bin PIXI_NO_PATH_UPDATE=1 bash
4813
fi
49-
source "$MINICONDA_DIR/etc/profile.d/conda.sh"
5014

51-
# Accept ToS for non-interactive use
52-
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main
53-
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r
54-
55-
# CUDF
56-
CUDF_REQUIRED_VERSION="25.12"
57-
CUDF_NIGHTLY=true
58-
CONDA_CUDF_ENV_NAME="libcudf-env"
59-
CONDA_BASE=$(conda info --base)
60-
export LIBCUDF_ENV_PREFIX="$CONDA_BASE/envs/$CONDA_CUDF_ENV_NAME"
61-
62-
check_libcudf_version() {
63-
conda list --prefix "$1" 2>/dev/null | grep "^libcudf" | awk '{print $2}'
64-
}
65-
CUDF_INSTALLED_VERSION=$(check_libcudf_version "$LIBCUDF_ENV_PREFIX" || echo "")
66-
67-
if [[ ! -d "$LIBCUDF_ENV_PREFIX" ]]; then
68-
echo "Creating conda environment $CONDA_CUDF_ENV_NAME..."
69-
conda create --name "$CONDA_CUDF_ENV_NAME" -y
70-
fi
71-
conda activate "$CONDA_CUDF_ENV_NAME"
72-
73-
if [[ "$CUDF_INSTALLED_VERSION" != "$CUDF_REQUIRED_VERSION" ]]; then
74-
echo "Installing/upgrading libcudf $CUDF_REQUIRED_VERSION..."
75-
if [[ "$CUDF_NIGHTLY" = true ]]; then
76-
conda install -c rapidsai -c conda-forge -c nvidia "rapidsai-nightly::libcudf=$CUDF_REQUIRED_VERSION" -y
77-
else
78-
conda install -c rapidsai -c conda-forge -c nvidia "rapidsai::libcudf=$CUDF_REQUIRED_VERSION" -y
79-
fi
80-
fi
15+
echo "All dependencies installed."

sirius/results/lambda-GH200.json

Lines changed: 46 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,57 @@
11
{
22
"system": "Sirius",
3-
"date": "2025-11-07",
3+
"date": "2026-03-09",
44
"machine": "lambda-GH200",
55
"cluster_size": 1,
66
"proprietary": "no",
77
"hardware": "gpu",
88
"tuned": "no",
99
"tags": ["C++","column-oriented","embedded"],
10-
"load_time": 26.30,
11-
"data_size": 26903326720,
10+
"load_time": 25.30,
11+
"data_size": 26887598080,
1212
"result": [
13-
[0.014,0.001,0.001],
14-
[0.374,0.004,0.004],
15-
[0.757,0.005,0.004],
16-
[0.793,0.005,0.004],
17-
[0.541,0.008,0.007],
18-
[2.117,0.013,0.010],
19-
[0.277,0.005,0.004],
20-
[0.289,0.005,0.011],
21-
[1.006,0.084,0.085],
22-
[1.334,0.089,0.089],
23-
[1.621,0.017,0.016],
24-
[1.649,0.018,0.017],
25-
[1.835,0.018,0.018],
26-
[2.432,0.124,0.125],
27-
[2.100,0.020,0.019],
28-
[0.557,0.013,0.013],
29-
[2.303,0.036,0.036],
30-
[2.314,0.026,0.025],
31-
[3.444,0.060,0.059],
32-
[0.499,0.004,0.004],
33-
[10.373,0.041,0.041],
34-
[9.085,0.014,0.013],
35-
[17.467,0.032,0.032],
36-
[70.218,0.066,0.067],
37-
[3.397,0.013,0.013],
38-
[1.795,0.009,0.009],
39-
[2.453,0.028,0.027],
40-
[12.015,0.165,0.165],
41-
[9.587,0.268,0.267],
42-
[0.576,0.036,0.035],
43-
[3.161,0.010,0.009],
44-
[3.995,0.013,0.013],
45-
[1.673,0.072,0.072],
46-
[7.463,0.075,0.074],
47-
[7.331,0.077,0.077],
48-
[0.475,0.020,0.020],
49-
[7.886,0.006,0.006],
50-
[8.330,0.006,0.006],
51-
[7.853,0.006,0.005],
52-
[16.314,0.010,0.010],
53-
[3.441,0.006,0.005],
54-
[2.121,0.005,0.005],
55-
[1.605,0.005,0.005]
13+
[0.015,0.001,0.000],
14+
[0.369,0.001,0.002],
15+
[0.705,0.003,0.002],
16+
[0.763,0.002,0.002],
17+
[0.471,0.010,0.009],
18+
[1.743,0.020,0.019],
19+
[0.263,0.002,0.001],
20+
[0.240,0.003,0.002],
21+
[0.849,0.017,0.016],
22+
[1.234,0.134,0.135],
23+
[1.406,0.005,0.004],
24+
[1.405,0.005,0.005],
25+
[1.341,0.016,0.016],
26+
[1.787,0.024,0.023],
27+
[1.582,0.017,0.017],
28+
[0.485,0.014,0.013],
29+
[1.771,0.031,0.031],
30+
[1.800,0.028,0.028],
31+
[2.875,0.048,0.048],
32+
[0.438,0.002,0.001],
33+
[10.325,0.039,0.038],
34+
[7.736,0.042,0.042],
35+
[16.230,0.088,0.086],
36+
[68.376,0.061,0.060],
37+
[2.300,0.008,0.007],
38+
[1.315,0.009,0.007],
39+
[1.868,0.007,0.007],
40+
[8.857,0.157,0.157],
41+
[7.839,0.286,0.285],
42+
[0.451,0.033,0.031],
43+
[2.516,0.013,0.012],
44+
[3.305,0.021,0.020],
45+
[1.483,0.117,0.117],
46+
[6.224,0.079,0.078],
47+
[6.292,0.084,0.083],
48+
[0.428,0.024,0.024],
49+
[6.667,0.005,0.005],
50+
[8.194,0.005,0.003],
51+
[6.585,0.003,0.003],
52+
[13.916,0.008,0.007],
53+
[2.962,0.003,0.003],
54+
[1.740,0.003,0.003],
55+
[1.359,0.003,0.003]
5656
]
5757
}
58-

sirius/results/p5.4xlarge.json

Lines changed: 45 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"system": "Sirius",
3-
"date": "2025-12-07",
3+
"date": "2026-03-09",
44
"machine": "p5.4xlarge",
55
"cluster_size": 1,
66
"proprietary": "no",
@@ -10,49 +10,48 @@
1010
"load_time": 237.18,
1111
"data_size": 26921938944,
1212
"result": [
13-
[0.028,0.000,0.001],
14-
[1.468,0.002,0.001],
15-
[3.838,0.003,0.002],
16-
[3.447,0.002,0.002],
17-
[3.028,0.005,0.005],
18-
[6.696,0.008,0.008],
19-
[1.168,0.002,0.002],
20-
[1.840,0.003,0.002],
21-
[5.249,0.092,0.093],
22-
[7.568,0.098,0.097],
23-
[6.409,0.015,0.015],
24-
[6.295,0.015,0.015],
25-
[6.824,0.069,0.068],
26-
[9.907,0.191,0.192],
27-
[8.017,0.075,0.074],
28-
[3.551,0.012,0.011],
29-
[9.769,0.121,0.121],
30-
[9.751,0.024,0.024],
31-
[13.273,0.161,0.160],
32-
[2.906,0.002,0.001],
33-
[41.637,0.040,0.040],
34-
[47.953,0.012,0.012],
35-
[81.308,0.031,0.031],
36-
[224.830,0.065,0.065],
37-
[11.813,0.008,0.008],
38-
[6.547,0.007,0.007],
39-
[12.030,0.128,0.129],
40-
[43.496,0.164,0.163],
41-
[32.878,0.274,0.274],
42-
[2.226,0.038,0.036],
43-
[13.673,0.008,0.007],
44-
[19.490,0.012,0.012],
45-
[13.002,0.081,0.081],
46-
[42.224,0.545,0.547],
47-
[42.345,0.556,0.552],
48-
[2.619,0.019,0.019],
49-
[45.643,0.009,0.009],
50-
[33.959,0.004,0.004],
51-
[45.765,0.003,0.003],
52-
[73.482,0.020,0.020],
53-
[16.912,0.003,0.003],
54-
[14.177,0.003,0.002],
55-
[9.339,0.003,0.002]
13+
[0.028,0.001,0.000],
14+
[1.331,0.002,0.002],
15+
[3.862,0.003,0.002],
16+
[3.468,0.002,0.002],
17+
[3.334,0.010,0.009],
18+
[6.078,0.020,0.019],
19+
[1.217,0.003,0.001],
20+
[1.696,0.003,0.003],
21+
[4.523,0.018,0.018],
22+
[8.371,0.141,0.140],
23+
[6.283,0.006,0.004],
24+
[8.090,0.006,0.005],
25+
[6.460,0.016,0.017],
26+
[9.827,0.024,0.024],
27+
[7.784,0.018,0.017],
28+
[3.622,0.015,0.014],
29+
[8.422,0.032,0.031],
30+
[9.131,0.029,0.029],
31+
[12.604,0.051,0.051],
32+
[3.382,0.002,0.002],
33+
[43.575,0.041,0.040],
34+
[47.567,0.044,0.043],
35+
[75.496,0.091,0.090],
36+
[218.280,0.065,0.064],
37+
[11.345,0.008,0.007],
38+
[6.019,0.008,0.008],
39+
[11.176,0.007,0.007],
40+
[44.371,0.151,0.151],
41+
[33.973,0.288,0.286],
42+
[2.267,0.038,0.039],
43+
[11.605,0.014,0.013],
44+
[16.902,0.021,0.022],
45+
[13.003,0.126,0.124],
46+
[43.721,0.080,0.080],
47+
[43.739,0.085,0.085],
48+
[3.042,0.025,0.025],
49+
[46.731,0.005,0.005],
50+
[34.366,0.005,0.004],
51+
[46.588,0.004,0.003],
52+
[74.694,0.008,0.007],
53+
[16.826,0.004,0.003],
54+
[13.496,0.004,0.003],
55+
[9.627,0.003,0.003]
5656
]
57-
}
58-
57+
}

0 commit comments

Comments
 (0)