Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 25 additions & 25 deletions conda-recipe/bld.bat
Original file line number Diff line number Diff line change
Expand Up @@ -6,41 +6,41 @@ IF %ERRORLEVEL% NEQ 0 (
REM conda uses %ERRORLEVEL% but FPGA scripts can set it. So it should be reseted.
set ERRORLEVEL=

set "CC=clang-cl.exe"
set "CXX=dpcpp.exe"
@REM set "CC=clang-cl.exe"
@REM set "CXX=dpcpp.exe"

rmdir /S /Q build_cmake
mkdir build_cmake
cd build_cmake
@REM rmdir /S /Q build_cmake
@REM mkdir build_cmake
@REM cd build_cmake

set "DPCPP_ROOT=%ONEAPI_ROOT%\compiler\latest\windows"
set "INSTALL_PREFIX=%cd%\..\install"
@REM set "DPCPP_ROOT=%ONEAPI_ROOT%\compiler\latest\windows"
@REM set "INSTALL_PREFIX=%cd%\..\install"

rmdir /S /Q "%INSTALL_PREFIX%"
@REM rmdir /S /Q "%INSTALL_PREFIX%"

cmake -G Ninja ^
-DCMAKE_BUILD_TYPE=Release ^
"-DCMAKE_INSTALL_PREFIX=%INSTALL_PREFIX%" ^
"-DCMAKE_PREFIX_PATH=%LIBRARY_PREFIX%" ^
"-DDPCPP_ROOT=%DPCPP_ROOT%" ^
"%SRC_DIR%\backends"
IF %ERRORLEVEL% NEQ 0 exit /b 1
@REM cmake -G Ninja ^
@REM -DCMAKE_BUILD_TYPE=Release ^
@REM "-DCMAKE_INSTALL_PREFIX=%INSTALL_PREFIX%" ^
@REM "-DCMAKE_PREFIX_PATH=%LIBRARY_PREFIX%" ^
@REM "-DDPCPP_ROOT=%DPCPP_ROOT%" ^
@REM "%SRC_DIR%\backends"
@REM IF %ERRORLEVEL% NEQ 0 exit /b 1

ninja -n
ninja install
IF %ERRORLEVEL% NEQ 0 exit /b 1
@REM ninja -n
@REM ninja install
@REM IF %ERRORLEVEL% NEQ 0 exit /b 1

cd ..
xcopy install\lib\*.lib dpctl /E /Y
xcopy install\bin\*.dll dpctl /E /Y
@REM cd ..
@REM xcopy install\lib\*.lib dpctl /E /Y
@REM xcopy install\bin\*.dll dpctl /E /Y

mkdir dpctl\include
xcopy backends\include dpctl\include /E /Y
@REM mkdir dpctl\include
@REM xcopy backends\include dpctl\include /E /Y


REM required by _sycl_core(dpctl)
set "DPPL_SYCL_INTERFACE_LIBDIR=dpctl"
set "DPPL_SYCL_INTERFACE_INCLDIR=dpctl\include"
@REM set "DPPL_SYCL_INTERFACE_LIBDIR=dpctl"
@REM set "DPPL_SYCL_INTERFACE_INCLDIR=dpctl\include"

"%PYTHON%" setup.py clean --all
"%PYTHON%" setup.py build install
Expand Down
86 changes: 43 additions & 43 deletions conda-recipe/build.sh
Original file line number Diff line number Diff line change
@@ -1,49 +1,49 @@
#!/bin/bash

# We need dpcpp to compile dppl_sycl_interface
if [ ! -z "${ONEAPI_ROOT}" ]; then
# Suppress error b/c it could fail on Ubuntu 18.04
source ${ONEAPI_ROOT}/compiler/latest/env/vars.sh || true
export CC=clang
export CXX=clang++
else
echo "DPCPP is needed to build DPPL. Abort!"
exit 1
fi

rm -rf build_cmake
mkdir build_cmake
pushd build_cmake

INSTALL_PREFIX=`pwd`/../install
rm -rf ${INSTALL_PREFIX}

PYTHON_INC=`${PYTHON} -c "import distutils.sysconfig; \
print(distutils.sysconfig.get_python_inc())"`
NUMPY_INC=`${PYTHON} -c "import numpy; print(numpy.get_include())"`
DPCPP_ROOT=${ONEAPI_ROOT}/compiler/latest/linux/

cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \
-DCMAKE_PREFIX_PATH=${INSTALL_PREFIX} \
-DDPCPP_ROOT=${DPCPP_ROOT} \
-DPYTHON_INCLUDE_DIR=${PYTHON_INC} \
-DNUMPY_INCLUDE_DIR=${NUMPY_INC} \
../backends

make -j 4 && make install

popd
cp install/lib/*.so dpctl/

mkdir -p dpctl/include
cp -r backends/include/* dpctl/include


# required by dpctl.sycl_core
export DPPL_SYCL_INTERFACE_LIBDIR=dpctl
export DPPL_SYCL_INTERFACE_INCLDIR=dpctl/include
# if [ ! -z "${ONEAPI_ROOT}" ]; then
# # Suppress error b/c it could fail on Ubuntu 18.04
# source ${ONEAPI_ROOT}/compiler/latest/env/vars.sh || true
# export CC=clang
# export CXX=clang++
# else
# echo "DPCPP is needed to build DPPL. Abort!"
# exit 1
# fi

# rm -rf build_cmake
# mkdir build_cmake
# pushd build_cmake

# INSTALL_PREFIX=`pwd`/../install
# rm -rf ${INSTALL_PREFIX}

# PYTHON_INC=`${PYTHON} -c "import distutils.sysconfig; \
# print(distutils.sysconfig.get_python_inc())"`
# NUMPY_INC=`${PYTHON} -c "import numpy; print(numpy.get_include())"`
# DPCPP_ROOT=${ONEAPI_ROOT}/compiler/latest/linux/

# cmake \
# -DCMAKE_BUILD_TYPE=Release \
# -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \
# -DCMAKE_PREFIX_PATH=${INSTALL_PREFIX} \
# -DDPCPP_ROOT=${DPCPP_ROOT} \
# -DPYTHON_INCLUDE_DIR=${PYTHON_INC} \
# -DNUMPY_INCLUDE_DIR=${NUMPY_INC} \
# ../backends

# make -j 4 && make install

# popd
# cp install/lib/*.so dpctl/

# mkdir -p dpctl/include
# cp -r backends/include/* dpctl/include


# # required by dpctl.sycl_core
# export DPPL_SYCL_INTERFACE_LIBDIR=dpctl
# export DPPL_SYCL_INTERFACE_INCLDIR=dpctl/include


# FIXME: How to pass this using setup.py? This flags is needed when
Expand Down
49 changes: 49 additions & 0 deletions scripts/build_backend.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
call "%ONEAPI_ROOT%compiler\latest\env\vars.bat"
@REM IF ERRORLEVEL 1 exit 1
REM conda uses %ERRORLEVEL% but FPGA scripts can set it. So it should be reseted.
set ERRORLEVEL=

set "CC=clang-cl.exe"
set "CXX=dpcpp.exe"

rmdir /S /Q build_cmake
mkdir build_cmake
cd build_cmake

set "DPCPP_ROOT=%ONEAPI_ROOT%\compiler\latest\windows"
set "INSTALL_PREFIX=%cd%\..\install"

rmdir /S /Q "%INSTALL_PREFIX%"

cmake -G Ninja ^
-DCMAKE_BUILD_TYPE=Release ^
"-DCMAKE_INSTALL_PREFIX=%INSTALL_PREFIX%" ^
"-DCMAKE_PREFIX_PATH=%LIBRARY_PREFIX%" ^
"-DDPCPP_ROOT=%DPCPP_ROOT%" ^
"%SRC_DIR%/backends"
IF %ERRORLEVEL% NEQ 0 exit 1

ninja -n
ninja install
IF %ERRORLEVEL% NEQ 0 exit 1

cd ..
xcopy install\lib\*.lib dpctl /E /Y
xcopy install\bin\*.dll dpctl /E /Y

mkdir dpctl\include
xcopy backends\include dpctl\include /E /Y


REM required by _opencl_core (dpctl.ocldrv)
@REM set "DPPL_OPENCL_INTERFACE_LIBDIR=dpctl"
@REM set "DPPL_OPENCL_INTERFACE_INCLDIR=dpctl\include"
@REM set "OpenCL_LIBDIR=%DPCPP_ROOT%\lib"

@REM REM required by _sycl_core(dpctl)
@REM set "DPPL_SYCL_INTERFACE_LIBDIR=dpctl"
@REM set "DPPL_SYCL_INTERFACE_INCLDIR=dpctl\include"

@REM "%PYTHON%" setup.py clean --all
@REM "%PYTHON%" setup.py build install
@REM IF %ERRORLEVEL% NEQ 0 exit 1
58 changes: 58 additions & 0 deletions scripts/build_backend.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#!/bin/bash

# We need dpcpp to compile dppl_sycl_interface
if [ ! -z "${ONEAPI_ROOT}" ]; then
# Suppress error b/c it could fail on Ubuntu 18.04
source ${ONEAPI_ROOT}/compiler/latest/env/vars.sh || true
export CC=clang
export CXX=clang++
else
echo "DPCPP is needed to build DPPL. Abort!"
exit 1
fi

rm -rf build_cmake
mkdir build_cmake
pushd build_cmake

INSTALL_PREFIX=`pwd`/../install
rm -rf ${INSTALL_PREFIX}

PYTHON_INC=`${PYTHON} -c "import distutils.sysconfig; \
print(distutils.sysconfig.get_python_inc())"`
NUMPY_INC=`${PYTHON} -c "import numpy; print(numpy.get_include())"`
DPCPP_ROOT=${ONEAPI_ROOT}/compiler/latest/linux/

cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \
-DCMAKE_PREFIX_PATH=${INSTALL_PREFIX} \
-DDPCPP_ROOT=${DPCPP_ROOT} \
-DPYTHON_INCLUDE_DIR=${PYTHON_INC} \
-DNUMPY_INCLUDE_DIR=${NUMPY_INC} \
../backends

make -j 4 && make install

popd
cp install/lib/*.so dpctl/

mkdir -p dpctl/include
cp -r backends/include/* dpctl/include

# required by dpctl.opencl_core
# export DPPL_OPENCL_INTERFACE_LIBDIR=dpctl
# export DPPL_OPENCL_INTERFACE_INCLDIR=dpctl/include
# export OpenCL_LIBDIR=${DPCPP_ROOT}/lib

# # required by dpctl.sycl_core
# export DPPL_SYCL_INTERFACE_LIBDIR=dpctl
# export DPPL_SYCL_INTERFACE_INCLDIR=dpctl/include


# FIXME: How to pass this using setup.py? This flags is needed when
# dpcpp compiles the generated cpp file.
# export CFLAGS="-fPIC -O3 ${CFLAGS}"
# export LDFLAGS="-L ${OpenCL_LIBDIR} ${LDFLAGS}"
# ${PYTHON} setup.py clean --all
# ${PYTHON} setup.py build install
48 changes: 12 additions & 36 deletions scripts/build_for_develop.bat
Original file line number Diff line number Diff line change
@@ -1,48 +1,32 @@
REM check if oneAPI has been activated, only try activating if not
dpcpp.exe --version >nul 2>&1
call "%ONEAPI_ROOT%\compiler\latest\env\vars.bat"
IF %ERRORLEVEL% NEQ 0 (
set ERRORLEVEL=
call "%ONEAPI_ROOT%\compiler\latest\env\vars.bat"
IF ERRORLEVEL 1 exit /b 1
echo "oneAPI compiler activation failed"
exit /b 1
)
REM conda uses %ERRORLEVEL% but FPGA scripts can set it. So it should be reseted.
set ERRORLEVEL=

set "CC=clang-cl.exe"
set "CXX=dpcpp.exe"

rmdir /S /Q build_cmake
mkdir build_cmake

rmdir /S /Q install
mkdir install
cd install
set "INSTALL_PREFIX=%cd%"

cd ..\build_cmake
cd build_cmake

set "DPCPP_ROOT=%ONEAPI_ROOT%\compiler\latest\windows"
set "INSTALL_PREFIX=%cd%\..\install"

rmdir /S /Q "%INSTALL_PREFIX%"

if defined USE_GTEST (
set "_BUILD_CAPI_TEST=ON"
) else (
set "_BUILD_CAPI_TEST=OFF"
)
cmake -G Ninja ^
-DCMAKE_BUILD_TYPE=Release ^
"-DCMAKE_CXX_FLAGS=-Wno-unused-function /EHa" ^
"-DCMAKE_INSTALL_PREFIX=%INSTALL_PREFIX%" ^
"-DCMAKE_PREFIX_PATH=%INSTALL_PREFIX%" ^
"-DCMAKE_PREFIX_PATH=%LIBRARY_PREFIX%" ^
"-DDPCPP_ROOT=%DPCPP_ROOT%" ^
"-DCMAKE_C_COMPILER:PATH=%DPCPP_ROOT%\bin\clang-cl.exe" ^
"-DCMAKE_CXX_COMPILER:PATH=%DPCPP_ROOT%\bin\dpcpp.exe" ^
"-DBUILD_CAPI_TESTS=%_BUILD_CAPI_TEST%" ^
"%cd%\..\backends"
"%SRC_DIR%\backends"
IF %ERRORLEVEL% NEQ 0 exit /b 1

ninja -n
IF %ERRORLEVEL% NEQ 0 exit /b 1
if defined USE_GTEST (
ninja check
IF %ERRORLEVEL% NEQ 0 exit /b 1
)
ninja install
IF %ERRORLEVEL% NEQ 0 exit /b 1

Expand All @@ -53,14 +37,6 @@ xcopy install\bin\*.dll dpctl /E /Y
mkdir dpctl\include
xcopy backends\include dpctl\include /E /Y


REM required by _sycl_core(dpctl)
set "DPPL_SYCL_INTERFACE_LIBDIR=dpctl"
set "DPPL_SYCL_INTERFACE_INCLDIR=dpctl\include"
set "CC=clang-cl.exe"
set "CXX=dpcpp.exe"

python setup.py clean --all
python setup.py build_ext --inplace develop
python -m unittest dpctl.tests
IF %ERRORLEVEL% NEQ 0 exit /b 1
Loading