################################################################## # # Name: Dynamic Kernel Scheduler # Version: 1.1 # Author: Uldis Locans # Contacts: locans.uldis@psi.ch # ################################################################## Dynamic Kernel Scheduler is a library that provides a software layer between host application and hardware accelerators. DKS handles communication between host and device and schedules task execution using predefined algorithms writen using CUDA and OpenCL for GPUs, and OpenMP with offload pragmas for IntelMIC. See DKSBase class documentation for full list of functions provided by DKS. #####Requirements##### cmake 3.2 or higher gcc 4.8.4 or higher boost 1.55 or higher #Optional OpenMPI (Cuda aware OpenMPI enabled for full compatability) icpc compiler for compatability with Intel MIC Cuda 7.0 or higher (optional) Nvidia or Intel OpenCL SDK (optional) Intel MIC compilers (optional) ######Source###### https://gitlab.psi.ch/uldis_l/DKS ######Changes from DKS-1.0.x version###### DKS is split into three modules that can be enabled/disabled at compile time depending on which software it is used for. By default only DKSBase and DKSFFT modules are enabled. In order to install other modules the necessary otion needs to be enabled. Supported options are: -DENABLE_OPAL option should be enabled if DKS will be used for OPAL -DENABLE_MUSR option should be enable if DKS will be used for musrfit -DENABLE_PET option should be enabled if DKS will be used for PET image reconstruction See install instructions for more details on how to enable the necessary options in DKS ######Install###### #consult the https://gitlab.psi.ch/uldis_l/DKS/wikis/home for full install isntructions #clone DKS git clone git@gitlab.psi.ch:uldis_l/DKS.git DKS #switch to the desired version (OPTIONAL) git checkout DKS-1.1.0 #configure installation in build directory #enable DKS modules to compile -DENABLE_OPAL, -DENABLE_MUSR, -DENABLE_PET CXX=<c++ compiler> CC=<c compiler> -DCMAKE_INSTALL_PREFIX=<install dir> <path to DKS source> [-DENABLE_OPAL=1 -DENABLE_MUSR=1 -DENABLE_PET=1] #install DKS make make install ######DKS usage###### Make install copies the include files and library files to $DKS_BUILD_DIR/build folder, lib folder in the build directory contains libdks.a and libdksshared.so, on of these libraries can be used to link with DKS. All the necessary include files are located in $DKS_BUILD_DIR/build/include. Additional flags needed for CUDA and OpenCL mode: -lcudart -lcufft -lcublas -lnvToolsExt -lOpenCL -lnvrtc -lcuda -DDKS_CUDA -DDKS_OPENCL Additional flags needed for IntelMIC and OpenCL mode: -offload -mkl -openmp -lOpenCL -DDKS_MIC -DDKS_OPENCL Note: always run make install, during runtime OpenCL and CUDA will search for kernel files in $DKS_INSTALL_DIR/build/include directory for runtime compilation. ######Running DKS###### #running with cuda #nvidia multi process service started for better CUDA and MPI execution #to start mps service (if multiple users use DKS start MPS as root) nvidia-cuda-mps-control -d #to stop mps service echo quit | nvidia-cuda-mps-control #runnign dks with MIC #Intel Manycore Platform Software Stack (mpss) service started #to start mpss service mpss start
Description
Languages
C++
68.2%
Cuda
21.6%
C
6.1%
CMake
3.8%
Shell
0.3%