90 lines
3.2 KiB
Plaintext
90 lines
3.2 KiB
Plaintext
##################################################################
|
|
#
|
|
# 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
|