mirror of
https://github.com/zama-ai/tfhe-rs.git
synced 2026-01-06 21:34:05 -05:00
87 lines
1.9 KiB
Bash
Executable File
87 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
function usage() {
|
|
echo "$0: build and/or run the C API tests"
|
|
echo
|
|
echo "--help Print this message"
|
|
echo "--build-only Pass to only build the tests without running them"
|
|
echo "--gpu Enable GPU support"
|
|
echo "--cargo-profile The profile used to build TFHE-rs, release by default"
|
|
echo
|
|
}
|
|
|
|
BUILD_ONLY=0
|
|
WITH_FEATURE_GPU="OFF"
|
|
CARGO_PROFILE="release"
|
|
while [ -n "$1" ]
|
|
do
|
|
case "$1" in
|
|
"--help" | "-h" )
|
|
usage
|
|
exit 0
|
|
;;
|
|
|
|
"--build-only" )
|
|
BUILD_ONLY=1
|
|
;;
|
|
|
|
"--gpu" )
|
|
WITH_FEATURE_GPU="ON"
|
|
;;
|
|
|
|
"--cargo-profile" )
|
|
shift
|
|
CARGO_PROFILE="$1"
|
|
;;
|
|
|
|
*)
|
|
echo "Unknown param : $1"
|
|
exit 1
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
CURR_DIR="$(dirname "$0")"
|
|
REPO_ROOT="${CURR_DIR}/.."
|
|
TFHE_BUILD_DIR="${REPO_ROOT}/tfhe/build/"
|
|
CPU_COUNT="$("${CURR_DIR}"/cpu_count.sh)"
|
|
|
|
|
|
|
|
LINKING_CPU_COUNT=4
|
|
|
|
# On linux
|
|
if [[ $(uname) != "Darwin" ]]; then
|
|
mem_in_gb="$(free -g | awk '/Mem:/ {print $2}')"
|
|
|
|
# If there is more than 100GB on the system,
|
|
# use all available cores for linking
|
|
# Otherwise, only use 4, to avoid OOM when linking
|
|
if [ 100 -lt "$mem_in_gb" ]; then
|
|
LINKING_CPU_COUNT="${CPU_COUNT}"
|
|
fi
|
|
fi
|
|
|
|
mkdir -p "${TFHE_BUILD_DIR}"
|
|
|
|
cd "${TFHE_BUILD_DIR}"
|
|
|
|
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DCARGO_PROFILE="${CARGO_PROFILE}" -DWITH_FEATURE_GPU="${WITH_FEATURE_GPU}"
|
|
|
|
make -j "${LINKING_CPU_COUNT}"
|
|
|
|
if [[ "${BUILD_ONLY}" == "1" ]]; then
|
|
exit 0
|
|
fi
|
|
|
|
|
|
|
|
if [ "${WITH_FEATURE_GPU}" == "ON" ]; then
|
|
ctest --output-on-failure --test-dir "." --parallel "${CPU_COUNT}" --tests-regex ".*cuda.*"
|
|
else
|
|
ctest --output-on-failure --test-dir "." --parallel "${CPU_COUNT}" --exclude-regex ".*cuda.*"
|
|
fi
|