packages feed

eigen-hhlo-0.1.0.0: cbits/gpu/build.sh

#!/bin/bash
# Build script for eigen-hhlo GPU custom-call library (cuSOLVER wrappers)

set -e
NVCC=${NVCC:-nvcc}
ARCH=${ARCH:-sm_75}
OUTDIR="${1:-../../lib}"

mkdir -p "$OUTDIR"

echo "Building eigen-hhlo GPU custom-call library..."
echo "  NVCC:  $NVCC"
echo "  ARCH:  $ARCH"
echo "  Output: $OUTDIR/libeigenhhlo_gpu.so"

$NVCC -shared -o "$OUTDIR/libeigenhhlo_gpu.so" \
    -Xcompiler -fPIC \
    -gencode "arch=compute_${ARCH#sm_},code=$ARCH" \
    eigenhhlo_cusolver.cu \
    -lcusolver -lcudart -O3

echo "Build complete."
echo "Register at runtime with:"
echo "  registerGpuCustomCall api \"$OUTDIR/libeigenhhlo_gpu.so\" \"eigenhhlo_dpotrf\""