diff --git a/projects/clr/rocclr/runtime/device/device.hpp b/projects/clr/rocclr/runtime/device/device.hpp index 8eb1469a3b..b468719b41 100644 --- a/projects/clr/rocclr/runtime/device/device.hpp +++ b/projects/clr/rocclr/runtime/device/device.hpp @@ -113,6 +113,7 @@ enum OclExtensions { ClKhrMipMapImageWrites, ClKhrIlProgram, ClAMDLiquidFlash, + ClAmdFp16, ClExtTotal }; @@ -156,6 +157,7 @@ OclExtensionsString[] = { "cl_khr_mipmap_image_writes ", "", (IS_MAINLINE || IS_LINUX) ? "" : "cl_amd_liquid_flash ", + "cl_amd_fp16 ", NULL }; diff --git a/projects/clr/rocclr/runtime/device/gpu/gpusettings.cpp b/projects/clr/rocclr/runtime/device/gpu/gpusettings.cpp index 6ee1ec05bb..6eeafa488f 100644 --- a/projects/clr/rocclr/runtime/device/gpu/gpusettings.cpp +++ b/projects/clr/rocclr/runtime/device/gpu/gpusettings.cpp @@ -200,6 +200,12 @@ Settings::create( // Keep this false even though we have support // singleFpDenorm_ = true; viPlus_ = true; + if (GPU_FORCE_FP16) { + enableExtension(ClKhrFp16); + } + else { + enableExtension(ClAmdFp16); + } // Fall through to CI ... case CAL_TARGET_KALINDI: case CAL_TARGET_SPECTRE: diff --git a/projects/clr/rocclr/runtime/utils/flags.hpp b/projects/clr/rocclr/runtime/utils/flags.hpp index 7836a79d8a..bc6decefb6 100644 --- a/projects/clr/rocclr/runtime/utils/flags.hpp +++ b/projects/clr/rocclr/runtime/utils/flags.hpp @@ -167,7 +167,9 @@ release(bool, GPU_MIPMAP, true, \ release(bool, DISABLE_DEFERRED_ALLOC, false, \ "Disables deferred memory allocation on device") \ release(int, AMD_GPU_FORCE_SINGLE_FP_DENORM, -1, \ - "Force denorm for single precision: -1 - don't force, 0 - disable, 1 - enable") \ + "Force denorm for single precision: -1 - don't force, 0 - disable, 1 - enable") \ +release(bool, GPU_FORCE_FP16, false, \ + "Force CL_KHR_FP16 extension") \ debug(bool, OCL_FORCE_CPU_SVM, false, \ "force svm support for CPU") \ debug(uint, OCL_SET_SVM_SIZE, 4096, \