From d2d71858a87fe42d11f988d17b09d437a0c7e2c2 Mon Sep 17 00:00:00 2001 From: Hashim Sharif <hsharif3@tyler.cs.illinois.edu> Date: Mon, 20 Apr 2020 00:06:25 -0500 Subject: [PATCH] Adding rules for building install-time binaries using FP16 routine --- llvm/projects/hpvm-tensor-rt/CMakeLists.txt | 126 +++++++++++++++----- 1 file changed, 98 insertions(+), 28 deletions(-) diff --git a/llvm/projects/hpvm-tensor-rt/CMakeLists.txt b/llvm/projects/hpvm-tensor-rt/CMakeLists.txt index 4150d533f8..2434e773b0 100644 --- a/llvm/projects/hpvm-tensor-rt/CMakeLists.txt +++ b/llvm/projects/hpvm-tensor-rt/CMakeLists.txt @@ -1,11 +1,6 @@ cmake_minimum_required (VERSION 2.6) project (hpvm-tensor-rt) -#set(CMAKE_C_COMPILER gcc) -#set(CMAKE_CXX_COMPILER g++) -#if (CMAKE_COMPILER_IS_GNUCC AND CMAKE_COMPILER_VERSION VERSION_LESS 7.2) -# message(FATAL_ERROR "Build Requires atleast gcc-7.2") -#endif() SET(CUDA_SEPARABLE_COMPILATION ON) @@ -97,15 +92,24 @@ if(USE_GFLAGS) list(APPEND LINK_LIBS gflags) endif() + # Adding new rule for building a cuDNN runtime library # Offline version cuda_add_library(tensor_runtime ${RUNTIME_SRCS}) cuda_add_cublas_to_target(tensor_runtime) target_link_libraries(tensor_runtime ${LINK_LIBS}) + +cuda_add_library(tensor_runtime_install ${RUNTIME_SRCS}) +cuda_add_cublas_to_target(tensor_runtime_install) +target_link_libraries(tensor_runtime_install ${LINK_LIBS}) + + # Online version remove_definitions(-DONLINE_PROFILING=false) add_definitions(-DONLINE_PROFILING=true) +remove_definitions(-DFP16_tuning=true) +add_definitions(-DFP16_tuning=false) cuda_add_library(tensor_runtime_online ${RUNTIME_SRCS}) cuda_add_cublas_to_target(tensor_runtime_online) target_link_libraries(tensor_runtime_online ${LINK_LIBS}) @@ -132,6 +136,7 @@ target_link_libraries(test_ops tensor_runtime ${GPU_PROFILER_LIB} ${SOC_SIMULAT #-- target_link_libraries(mio_test tensor_runtime ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + add_executable(lenet_keras dnn_sources/src/lenet_keras.cc) target_link_libraries(lenet_keras tensor_runtime ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) @@ -197,16 +202,11 @@ target_link_libraries(resnet_imagenet tensor_runtime_online ${GPU_PROFILER_LIB - #********* Promise API sources add_executable(lenet_promise dnn_sources/src/promise/lenet_promise.cc) target_link_libraries(lenet_promise tensor_runtime_online ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) -#add_executable(lenet_quantize_promise dnn_sources/src/promise/lenet_quantize_promise.cc) -#target_link_libraries(lenet_quantize_promise tensor_runtime_online ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) - -# Quantized PROMISE sources add_executable(alexnet_promise dnn_sources/src/promise/alexnet_promise.cc) target_link_libraries(alexnet_promise tensor_runtime_online ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) @@ -239,13 +239,50 @@ target_link_libraries(resnet50_imagenet_promise tensor_runtime_online ${GPU_PR + + # testing binaries #-- add_executable(alexnet2_sampsim dnn_sources/src/alexnet2_sampsim.cc) #-- target_link_libraries(alexnet2_sampsim tensor_runtime ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) -add_executable(alexnet2_approxhalf dnn_sources/src/alexnet2_approxhalf.cc) -target_link_libraries(alexnet2_approxhalf tensor_runtime ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) +#add_executable(alexnet2_approxhalf dnn_sources/src/alexnet2_approxhalf.cc) +#target_link_libraries(alexnet2_approxhalf tensor_runtime ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + + + +#********* Promise API sources +add_executable(lenet_promise_install dnn_sources/src/promise/lenet_promise.cc) +target_link_libraries(lenet_promise_install tensor_runtime_install ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + + +add_executable(alexnet_promise_install dnn_sources/src/promise/alexnet_promise.cc) +target_link_libraries(alexnet_promise_install tensor_runtime_install ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + +add_executable(alexnet2_promise_install dnn_sources/src/promise/alexnet2_promise.cc) +target_link_libraries(alexnet2_promise_install tensor_runtime_install ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + +add_executable(resnet18_promise_install dnn_sources/src/promise/resnet18_promise.cc) +target_link_libraries(resnet18_promise_install tensor_runtime_install ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + +add_executable(vgg16_cifar100_promise_install dnn_sources/src/promise/vgg16_cifar100_promise.cc) +target_link_libraries(vgg16_cifar100_promise_install tensor_runtime_install ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + +add_executable(vgg16_cifar10_promise_install dnn_sources/src/promise/vgg16_cifar10_promise.cc) +target_link_libraries(vgg16_cifar10_promise_install tensor_runtime_install ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + +add_executable(mobilenet_promise_install dnn_sources/src/promise/mobilenet_promise.cc) +target_link_libraries(mobilenet_promise_install tensor_runtime_install ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + +add_executable(mobilenet_shallow_promise_install dnn_sources/src/promise/mobilenet_shallow_promise.cc) +target_link_libraries(mobilenet_shallow_promise_install tensor_runtime_install ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + +add_executable(vgg16_imagenet_promise_install dnn_sources/src/promise/vgg16_imagenet_promise.cc) +target_link_libraries(vgg16_imagenet_promise_install tensor_runtime_install ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + +add_executable(resnet50_imagenet_promise_install dnn_sources/src/promise/resnet50_imagenet_promise.cc) +target_link_libraries(resnet50_imagenet_promise_install tensor_runtime_install ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + @@ -254,29 +291,29 @@ target_link_libraries(alexnet2_approxhalf tensor_runtime ${GPU_PROFILER_LIB} ${ #********* Half Precision Sources ****** -add_executable(lenet_half dnn_sources/src/half/lenet_keras_half.cc) -target_link_libraries(lenet_half tensor_runtime_online ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) +#--- add_executable(lenet_half dnn_sources/src/half/lenet_keras_half.cc) +#--- target_link_libraries(lenet_half tensor_runtime_online ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) -add_executable(alexnet_half dnn_sources/src/half/alexnet_cifar10_half.cc) -target_link_libraries(alexnet_half tensor_runtime_online ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) +#--- add_executable(alexnet_half dnn_sources/src/half/alexnet_cifar10_half.cc) +#--- target_link_libraries(alexnet_half tensor_runtime_online ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) -add_executable(alexnet2_half dnn_sources/src/half/alexnet2_cifar10_half.cc) -target_link_libraries(alexnet2_half tensor_runtime_online ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) +#--- add_executable(alexnet2_half dnn_sources/src/half/alexnet2_cifar10_half.cc) +#--- target_link_libraries(alexnet2_half tensor_runtime_online ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) -add_executable(resnet18_half dnn_sources/src/half/resnet18_cifar10_half.cc) -target_link_libraries(resnet18_half tensor_runtime_online ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) +#--- add_executable(resnet18_half dnn_sources/src/half/resnet18_cifar10_half.cc) +#--- target_link_libraries(resnet18_half tensor_runtime_online ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) -add_executable(vgg16_cifar10_half dnn_sources/src/half/vgg16_cifar10_half.cc) -target_link_libraries(vgg16_cifar10_half tensor_runtime_online ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) +#--- add_executable(vgg16_cifar10_half dnn_sources/src/half/vgg16_cifar10_half.cc) +#--- target_link_libraries(vgg16_cifar10_half tensor_runtime_online ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) -add_executable(vgg16_cifar100_half dnn_sources/src/half/vgg16_cifar100_half.cc) -target_link_libraries(vgg16_cifar100_half tensor_runtime_online ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) +#--- add_executable(vgg16_cifar100_half dnn_sources/src/half/vgg16_cifar100_half.cc) +#--- target_link_libraries(vgg16_cifar100_half tensor_runtime_online ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) -add_executable(mobilenet_half dnn_sources/src/half/mobilenet_depthwise_half.cc) -target_link_libraries(mobilenet_half tensor_runtime_online ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) +#--- add_executable(mobilenet_half dnn_sources/src/half/mobilenet_depthwise_half.cc) +#--- target_link_libraries(mobilenet_half tensor_runtime_online ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) -add_executable(mobilenet_shallow_half dnn_sources/src/half/mobilenet_shallow_depthwise_half.cc) -target_link_libraries(mobilenet_shallow_half tensor_runtime_online ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) +#--- add_executable(mobilenet_shallow_half dnn_sources/src/half/mobilenet_shallow_depthwise_half.cc) +#--- target_link_libraries(mobilenet_shallow_half tensor_runtime_online ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) @@ -314,6 +351,39 @@ target_link_libraries(resnet50_imagenet_piped tensor_runtime_online ${GPU_PROF +# OpenTuner Piped Sources - FP16 supported version --- used for install-time tuning +add_executable(alexnet_piped_install dnn_sources/src/promise/alexnet_piped.cc) +target_link_libraries(alexnet_piped_install tensor_runtime_install ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + +add_executable(alexnet2_piped_install dnn_sources/src/promise/alexnet2_piped.cc) +target_link_libraries(alexnet2_piped_install tensor_runtime_install ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + +add_executable(lenet_piped_install dnn_sources/src/promise/lenet_piped.cc) +target_link_libraries(lenet_piped_install tensor_runtime_install ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + +add_executable(resnet18_piped_install dnn_sources/src/promise/resnet18_piped.cc) +target_link_libraries(resnet18_piped_install tensor_runtime_install ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + +add_executable(vgg16_cifar10_piped_install dnn_sources/src/promise/vgg16_cifar10_piped.cc) +target_link_libraries(vgg16_cifar10_piped_install tensor_runtime_install ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + +add_executable(vgg16_cifar100_piped_install dnn_sources/src/promise/vgg16_cifar100_piped.cc) +target_link_libraries(vgg16_cifar100_piped_install tensor_runtime_install ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + +add_executable(mobilenet_piped_install dnn_sources/src/promise/mobilenet_piped.cc) +target_link_libraries(mobilenet_piped_install tensor_runtime_install ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + +add_executable(mobilenet_shallow_piped_install dnn_sources/src/promise/mobilenet_shallow_piped.cc) +target_link_libraries(mobilenet_shallow_piped_install tensor_runtime_install ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + +add_executable(vgg16_imagenet_piped_install dnn_sources/src/promise/vgg16_imagenet_piped.cc) +target_link_libraries(vgg16_imagenet_piped_install tensor_runtime_install ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + +add_executable(resnet50_imagenet_piped_install dnn_sources/src/promise/resnet50_imagenet_piped.cc) +target_link_libraries(resnet50_imagenet_piped_install tensor_runtime_install ${GPU_PROFILER_LIB} ${SOC_SIMULATOR_LIB}) + + + ## Image processing benchmarks add_executable(canny_25 dnn_sources/src/promise/canny_25.cpp) -- GitLab