From 842ffa29cbabb9ad5b3c6a14b41d69f84fdf2839 Mon Sep 17 00:00:00 2001 From: Zhengyu Peng Date: Sat, 6 Apr 2024 21:55:40 -0400 Subject: [PATCH] freetier cuda build --- build_linux_cuda_freetier.sh | 66 +++++++++++++++++++++++++++++++++ build_win_cuda_freetier.bat | 72 ++++++++++++++++++++++++++++++++++++ setup_cuda_freetier.py | 2 +- 3 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 build_linux_cuda_freetier.sh create mode 100644 build_win_cuda_freetier.bat diff --git a/build_linux_cuda_freetier.sh b/build_linux_cuda_freetier.sh new file mode 100644 index 0000000..cea2ef3 --- /dev/null +++ b/build_linux_cuda_freetier.sh @@ -0,0 +1,66 @@ +#!/bin/sh + +echo "Automatic build script of radarsimcpp/radarsimpy for Linux" +echo "" +echo "----------" +echo "RadarSimPy - A Radar Simulator Built with Python" +echo "Copyright (C) 2018 - PRESENT radarsimx.com" +echo "E-mail: info@radarsimx.com" +echo "Website: https://radarsimx.com" +echo "" +echo "██████╗ █████╗ ██████╗ █████╗ ██████╗ ███████╗██╗███╗ ███╗██╗ ██╗" +echo "██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔════╝██║████╗ ████║╚██╗██╔╝" +echo "██████╔╝███████║██║ ██║███████║██████╔╝███████╗██║██╔████╔██║ ╚███╔╝ " +echo "██╔══██╗██╔══██║██║ ██║██╔══██║██╔══██╗╚════██║██║██║╚██╔╝██║ ██╔██╗ " +echo "██║ ██║██║ ██║██████╔╝██║ ██║██║ ██║███████║██║██║ ╚═╝ ██║██╔╝ ██╗" +echo "╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝╚═╝ ╚═╝╚═╝ ╚═╝" + +workpath=$(pwd) + +echo "## Clean old build files ##" +rm -rf ./src/radarsimcpp/build +rm -rf ./radarsimpy + +echo "## Building libradarsimcpp.so with GPU ##" +mkdir ./src/radarsimcpp/build +cd ./src/radarsimcpp/build + +cmake -DCMAKE_BUILD_TYPE=Release -DGPU_BUILD=ON -DGTEST=ON .. +cmake --build . + +echo "## Building radarsimpy with Cython ##" +cd $workpath +python setup_cuda_freetier.py build_ext -b ./ + +echo "## Copying lib files to ./radarsimpy ##" +# mkdir ./radarsimpy/lib +cp ./src/radarsimpy/*.py ./radarsimpy +cp ./src/radarsimpy/lib/__init__.py ./radarsimpy/lib +cp ./src/radarsimcpp/build/*.so ./radarsimpy + +echo "## Cleaning radarsimpy builds ##" +rm -rf build + +rm -f ./src/radarsimpy/*.c +rm -f ./src/radarsimpy/*.cpp +rm -f ./src/radarsimpy/*.html +rm -f ./src/radarsimpy/raytracing/*.c +rm -f ./src/radarsimpy/raytracing/*.cpp +rm -f ./src/radarsimpy/raytracing/*.html +rm -f ./src/radarsimpy/lib/*.cpp +rm -f ./src/radarsimpy/lib/*.html +rm -f ./src/*.cpp +rm -f ./src/*.html + +echo "## Copying lib files to unit test folder ##" +rm -rf ./tests/radarsimpy +mkdir ./tests/radarsimpy +cp -rf ./radarsimpy/* ./tests/radarsimpy + +echo "## Build completed ##" + +echo "## Run Google test ##" +./src/radarsimcpp/build/radarsimcpp_test + +echo "## Pytest ##" +pytest diff --git a/build_win_cuda_freetier.bat b/build_win_cuda_freetier.bat new file mode 100644 index 0000000..cd96c88 --- /dev/null +++ b/build_win_cuda_freetier.bat @@ -0,0 +1,72 @@ +@ECHO OFF + +ECHO Automatic build script of radarsimcpp/radarsimpy for Windows +ECHO: +ECHO ---------- +ECHO RadarSimPy - A Radar Simulator Built with Python +ECHO Copyright (C) 2018 - PRESENT radarsimx.com +ECHO E-mail: info@radarsimx.com +ECHO Website: https://radarsimx.com +ECHO: +ECHO ******* ** ******** ** ** ** +ECHO /**////** /** **////// // //** ** +ECHO /** /** ****** /** ****** ******/** ** ********** //** ** +ECHO /******* //////** ****** //////** //**//*/*********/**//**//**//** //*** +ECHO /**///** ******* **///** ******* /** / ////////**/** /** /** /** **/** +ECHO /** //** **////** /** /** **////** /** /**/** /** /** /** ** //** +ECHO /** //**//********//******//********/*** ******** /** *** /** /** ** //** +ECHO // // //////// ////// //////// /// //////// // /// // // // // +ECHO: + +SET pwd=%cd% + +ECHO clean old build files +RMDIR /Q/S .\src\radarsimcpp\build + +ECHO clean old radarsimpy module +RMDIR /Q/S .\radarsimpy + +@REM go to the build folder +MD ".\src\radarsimcpp\build" +CD ".\src\radarsimcpp\build" + +ECHO ## Building radarsimcpp.dll with MSVC ## +@REM MSVC needs to set the build type using '--config Relesae' +cmake -DGPU_BUILD=ON -DGTEST=ON .. +cmake --build . --config Release + +ECHO ## Building radarsimpy with Cython ## +CD %pwd% +python setup_cuda_freetier.py build_ext -b ./ + +ECHO ## Copying dll files to ./radarsimpy ## +XCOPY ".\src\radarsimcpp\build\Release\radarsimcpp.dll" ".\radarsimpy\" +XCOPY ".\src\radarsimpy\*.py" ".\radarsimpy\" +XCOPY ".\src\radarsimpy\lib\__init__.py" ".\radarsimpy\lib\" + +ECHO ## Cleaning radarsimpy builds ## +RMDIR build /s /q + +DEL ".\src\radarsimpy\*.c" +DEL ".\src\radarsimpy\*.cpp" +DEL ".\src\radarsimpy\*.html" +DEL ".\src\radarsimpy\raytracing\*.c" +DEL ".\src\radarsimpy\raytracing\*.cpp" +DEL ".\src\radarsimpy\raytracing\*.html" +DEL ".\src\radarsimpy\lib\*.cpp" +DEL ".\src\radarsimpy\lib\*.html" +DEL ".\src\*.cpp" +DEL ".\src\*.html" + +ECHO ## Copying lib files to unit test folder ## + +RMDIR /Q/S .\tests\radarsimpy +XCOPY /E /I .\radarsimpy .\tests\radarsimpy + +ECHO ## Build completed ## + +ECHO ## Run Google test ## +.\src\radarsimcpp\build\Release\radarsimcpp_test.exe + +ECHO ## Pytest ## +pytest diff --git a/setup_cuda_freetier.py b/setup_cuda_freetier.py index 38408b4..4deea2d 100644 --- a/setup_cuda_freetier.py +++ b/setup_cuda_freetier.py @@ -112,7 +112,7 @@ def locate_cuda(): CUDA = locate_cuda() -MACROS = [("NPY_NO_DEPRECATED_API", "NPY_1_7_API_VERSION"), ("_CUDA_", None)] +MACROS = [("NPY_NO_DEPRECATED_API", "NPY_1_7_API_VERSION"), ("_CUDA_", None), ("_FREETIER_", 1)] INCLUDE_DIRS = ["src/radarsimcpp/includes", "src/radarsimcpp/includes/zpvector"]