From 37141558091ec0cfed5283acaaa7ab28fe2a7281 Mon Sep 17 00:00:00 2001 From: Roberto Cavicchioli Date: Wed, 6 Mar 2019 16:39:36 +0100 Subject: [PATCH] dla --- include/Network.h | 2 +- src/Network.cpp | 10 +++++++++- src/NetworkRT.cpp | 7 +++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/include/Network.h b/include/Network.h index 958129c..9da5806 100644 --- a/include/Network.h +++ b/include/Network.h @@ -59,7 +59,7 @@ public: dataDim_t input_dim; dataDim_t getOutputDim(); - bool fp16; + bool fp16, dla; }; }} diff --git a/src/Network.cpp b/src/Network.cpp index cade05f..491e32b 100644 --- a/src/Network.cpp +++ b/src/Network.cpp @@ -24,12 +24,20 @@ Network::Network(dataDim_t input_dim) { num_layers = 0; fp16 = false; - if(const char* env_p = std::getenv("TKDNN_MODE")) + dla = false; + if(const char* env_p = std::getenv("TKDNN_MODE")) { if(strcmp(env_p, "FP16") == 0) fp16 = true; + else if(strcmp(env_p, "DLA") == 0) { + dla = true; + fp16 = true; + } + } if(fp16) std::cout<setHalf2Mode(true); } + if(net->dla && builderRT->getNbDLACores() > 0) { + dtRT = DataType::kHALF; + builderRT->setFp16Mode(true); + builderRT->allowGPUFallback(true); + builderRT->setDefaultDeviceType(DeviceType::kDLA); + builderRT->setDLACore(0); + } //add input layer ITensor *input = networkRT->addInput("data", DataType::kFLOAT,