diff options
Diffstat (limited to 'src/backends/reference')
-rw-r--r-- | src/backends/reference/RefLayerSupport.cpp | 3 | ||||
-rw-r--r-- | src/backends/reference/RefWorkloadFactory.cpp | 4 | ||||
-rw-r--r-- | src/backends/reference/test/RefLayerTests.cpp | 5 | ||||
-rw-r--r-- | src/backends/reference/workloads/Debug.cpp | 7 | ||||
-rw-r--r-- | src/backends/reference/workloads/RefDebugWorkload.cpp | 1 | ||||
-rw-r--r-- | src/backends/reference/workloads/RefDebugWorkload.hpp | 1 |
6 files changed, 20 insertions, 1 deletions
diff --git a/src/backends/reference/RefLayerSupport.cpp b/src/backends/reference/RefLayerSupport.cpp index 9dc576cac8..94128fe7cd 100644 --- a/src/backends/reference/RefLayerSupport.cpp +++ b/src/backends/reference/RefLayerSupport.cpp @@ -495,8 +495,9 @@ bool RefLayerSupport::IsDebugSupported(const TensorInfo& input, { bool supported = true; - std::array<DataType, 7> supportedTypes = + std::array<DataType, 8> supportedTypes = { + DataType::BFloat16, DataType::Float16, DataType::Float32, DataType::QAsymmU8, diff --git a/src/backends/reference/RefWorkloadFactory.cpp b/src/backends/reference/RefWorkloadFactory.cpp index 1d82421490..aebf19bf28 100644 --- a/src/backends/reference/RefWorkloadFactory.cpp +++ b/src/backends/reference/RefWorkloadFactory.cpp @@ -203,6 +203,10 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateConvolution2d(const Convolu std::unique_ptr<IWorkload> RefWorkloadFactory::CreateDebug(const DebugQueueDescriptor& descriptor, const WorkloadInfo& info) const { + if (IsBFloat16(info)) + { + return std::make_unique<RefDebugBFloat16Workload>(descriptor, info); + } if (IsFloat16(info)) { return std::make_unique<RefDebugFloat16Workload>(descriptor, info); diff --git a/src/backends/reference/test/RefLayerTests.cpp b/src/backends/reference/test/RefLayerTests.cpp index a6bfe3575c..73b2a05e09 100644 --- a/src/backends/reference/test/RefLayerTests.cpp +++ b/src/backends/reference/test/RefLayerTests.cpp @@ -1417,6 +1417,11 @@ ARMNN_AUTO_TEST_CASE(Debug3dFloat32, Debug3dFloat32Test) ARMNN_AUTO_TEST_CASE(Debug2dFloat32, Debug2dFloat32Test) ARMNN_AUTO_TEST_CASE(Debug1dFloat32, Debug1dFloat32Test) +ARMNN_AUTO_TEST_CASE(Debug4dBFloat16, Debug4dBFloat16Test) +ARMNN_AUTO_TEST_CASE(Debug3dBFloat16, Debug3dBFloat16Test) +ARMNN_AUTO_TEST_CASE(Debug2dBFloat16, Debug2dBFloat16Test) +ARMNN_AUTO_TEST_CASE(Debug1dBFloat16, Debug1dBFloat16Test) + ARMNN_AUTO_TEST_CASE(Debug4dUint8, Debug4dUint8Test) ARMNN_AUTO_TEST_CASE(Debug3dUint8, Debug3dUint8Test) ARMNN_AUTO_TEST_CASE(Debug2dUint8, Debug2dUint8Test) diff --git a/src/backends/reference/workloads/Debug.cpp b/src/backends/reference/workloads/Debug.cpp index 49e9e02ffb..aadbc7613b 100644 --- a/src/backends/reference/workloads/Debug.cpp +++ b/src/backends/reference/workloads/Debug.cpp @@ -5,6 +5,7 @@ #include "Debug.hpp" +#include <BFloat16.hpp> #include <Half.hpp> #include <boost/numeric/conversion/cast.hpp> @@ -88,6 +89,12 @@ void Debug(const TensorInfo& inputInfo, std::cout << " }" << std::endl; } +template void Debug<BFloat16>(const TensorInfo& inputInfo, + const BFloat16* inputData, + LayerGuid guid, + const std::string& layerName, + unsigned int slotIndex); + template void Debug<Half>(const TensorInfo& inputInfo, const Half* inputData, LayerGuid guid, diff --git a/src/backends/reference/workloads/RefDebugWorkload.cpp b/src/backends/reference/workloads/RefDebugWorkload.cpp index af714a3ca7..72b03effca 100644 --- a/src/backends/reference/workloads/RefDebugWorkload.cpp +++ b/src/backends/reference/workloads/RefDebugWorkload.cpp @@ -44,6 +44,7 @@ void RefDebugWorkload<DataType>::RegisterDebugCallback(const DebugCallbackFuncti m_Callback = func; } +template class RefDebugWorkload<DataType::BFloat16>; template class RefDebugWorkload<DataType::Float16>; template class RefDebugWorkload<DataType::Float32>; template class RefDebugWorkload<DataType::QAsymmU8>; diff --git a/src/backends/reference/workloads/RefDebugWorkload.hpp b/src/backends/reference/workloads/RefDebugWorkload.hpp index 5a2a1cdf1b..1ccbcc590b 100644 --- a/src/backends/reference/workloads/RefDebugWorkload.hpp +++ b/src/backends/reference/workloads/RefDebugWorkload.hpp @@ -37,6 +37,7 @@ private: DebugCallbackFunction m_Callback; }; +using RefDebugBFloat16Workload = RefDebugWorkload<DataType::BFloat16>; using RefDebugFloat16Workload = RefDebugWorkload<DataType::Float16>; using RefDebugFloat32Workload = RefDebugWorkload<DataType::Float32>; using RefDebugQAsymmU8Workload = RefDebugWorkload<DataType::QAsymmU8>; |