122 lines
4.0 KiB
Bash
122 lines
4.0 KiB
Bash
#!/bin/bash
|
|
|
|
file_name=""
|
|
|
|
|
|
|
|
function append_args {
|
|
if [ -n "$1" ]; then
|
|
file_name="${file_name}-$1"
|
|
fi
|
|
}
|
|
|
|
function create_config {
|
|
if [ "$1" == "cuda" ]; then
|
|
engine="ENGINE_CUDA"
|
|
elif [ "$1" == "aurora" ]; then
|
|
engine="ENGINE_AURORA"
|
|
else
|
|
engine="ENGINE_CPU"
|
|
|
|
fi
|
|
|
|
config="${GITHUB_WORKSPACE}/libnd4j/blasbuild/$1/include/config.h"
|
|
config_copy="${GITHUB_WORKSPACE}/libnd4j/include/config.h"
|
|
if test -f "${config_copy}"; then
|
|
rm -f "${config_copy}"
|
|
fi
|
|
|
|
if test -f "${config}"; then
|
|
rm -f "${config}"
|
|
fi
|
|
|
|
print_config "${config_copy}" "${engine}"
|
|
print_config "${config}" "${engine}"
|
|
|
|
|
|
}
|
|
|
|
function print_config {
|
|
echo "Generating config.h $1"
|
|
echo "#ifndef LIBND4J_CONFIG_H" >> "$1"
|
|
echo "#define LIBND4J_CONFIG_H" >> "$1"
|
|
echo "#define DEFAULT_ENGINE samediff::$2" >> "$1"
|
|
echo "#endif" >> "$1"
|
|
echo "Generated config.h at $1"
|
|
cat "$1"
|
|
}
|
|
|
|
function copy_lib {
|
|
cp -rf "libnd4j/blasbuild/"* "${GITHUB_WORKSPACE}/libnd4j/blasbuild/"
|
|
echo "Copied libraries in libnd4j/blasbuild to ${GITHUB_WORKSPACE}/libnd4j/blasbuild"
|
|
echo "libraries in libnd4j/blasbuild were"
|
|
ls "libnd4j/blasbuild"
|
|
echo "libraries in target ${GITHUB_WORKSPACE}/libnd4j/blasbuild were"
|
|
ls "${GITHUB_WORKSPACE}/libnd4j/blasbuild"
|
|
echo "libraries in device directory ${GITHUB_WORKSPACE}/libnd4j/blasbuild/$1 were"
|
|
ls "${GITHUB_WORKSPACE}/libnd4j/blasbuild/$1"
|
|
if [ "$1" == "cpu" ]; then
|
|
echo "Copying libnd4j cpu to ${OPENBLAS_PATH}/lib"
|
|
cp -rf "${GITHUB_WORKSPACE}/libnd4j/blasbuild/$1/blas/"* "${OPENBLAS_PATH}/lib"
|
|
echo "Contents of ${OPENBLAS_PATH}/lib are"
|
|
ls "${OPENBLAS_PATH}/lib"
|
|
fi
|
|
}
|
|
|
|
|
|
for var in "$@"
|
|
do
|
|
append_args "${var}"
|
|
done
|
|
|
|
# Get rid of the first character
|
|
file_name_2="${file_name:1:${#file_name}}"
|
|
|
|
|
|
if ! [[ -z "$LIBND4J_FILE_NAME" ]]; then
|
|
echo "Downloading file with url at $LIBND4J_FILE_NAME/${file_name_2}"
|
|
curl "${LIBND4J_FILE_NAME}/${file_name_2}" -o file_url.txt
|
|
# shellcheck disable=SC2006
|
|
export LIBND4J_URL=`cat file_url.txt`
|
|
echo "Setup LIBND4J_URL to $LIBND4J_URL"
|
|
fi
|
|
|
|
if ! [[ -z "$LIBND4J_URL" ]]; then
|
|
mkdir libnd4j_home
|
|
cd libnd4j_home
|
|
# Set a suffix for the downloaded libnd4j directory
|
|
if [ -z "${LIBND4J_HOME_SUFFIX}" ]; then export LIBND4J_HOME_SUFFIX="cpu"; fi
|
|
wget "${LIBND4J_URL}" -O libnd4j.zip
|
|
unzip libnd4j.zip
|
|
echo "Files in directory $(pwd) are "
|
|
ls
|
|
echo "Copying files to libnd4j directory"
|
|
# Note: for builds, the whole source directory is uploaded, but a valid libnd4j home is actually only the compiled output
|
|
cp -rf libnd4j/blasbuild/ "../libnd4j"
|
|
echo "Files in ${GITHUB_WORKSPACE} are"
|
|
ls "$GITHUB_WORKSPACE"
|
|
echo "Files in libnd4j directory are ${GITHUB_WORKSPACE}/libnd4j"
|
|
ls "${GITHUB_WORKSPACE}/libnd4j"
|
|
cd ..
|
|
# generated files may not exist, use in javacpp compilation
|
|
mkdir -p ${GITHUB_WORKSPACE}/libnd4j/include/generated
|
|
touch ${GITHUB_WORKSPACE}/libnd4j/include/generated/include_ops.h
|
|
# Add flatbuffers include files to libnd4j directory
|
|
git clone https://github.com/KonduitAI/flatbuffers.git
|
|
mv flatbuffers flatbuffers-src
|
|
cp -rf flatbuffers-src/include ${GITHUB_WORKSPACE}/libnd4j/
|
|
echo "Copied flatbuffers to ${GITHUB_WORKSPACE}/libnd4j/include"
|
|
if [ "$#" -gt 1 ]; then
|
|
if [ "$2" == "cuda" ]; then
|
|
create_config "cuda"
|
|
copy_lib "cuda"
|
|
elif [ "$2" == "aurora" ]; then
|
|
create_config "aurora"
|
|
copy_lib "aurora"
|
|
else
|
|
create_config "cpu"
|
|
copy_lib "cpu"
|
|
|
|
fi
|
|
fi
|
|
fi |