From 13b1d666cff32e8ebbe650c3a9149b30d483c49d Mon Sep 17 00:00:00 2001 From: foreman Date: Tue, 1 Aug 2017 16:19:37 -0400 Subject: [PATCH] P4 to Git Change 1442246 by bsumner@bsumner-lin-opencl on 2017/08/01 16:04:23 SWDEV-128916 - use AMD_GPU_FORCE_SINGLE_FP_DENORM in determining daz_opt library control Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.cpp#41 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#67 edit [ROCm/clr commit: a8f8ab14f0fadb7afbf31267707f74c125e1d5e7] --- projects/clr/rocclr/runtime/device/pal/palprogram.cpp | 11 +++-------- .../clr/rocclr/runtime/device/rocm/rocprogram.cpp | 5 +++-- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/projects/clr/rocclr/runtime/device/pal/palprogram.cpp b/projects/clr/rocclr/runtime/device/pal/palprogram.cpp index 53c3b4db1d..4979cb9e57 100644 --- a/projects/clr/rocclr/runtime/device/pal/palprogram.cpp +++ b/projects/clr/rocclr/runtime/device/pal/palprogram.cpp @@ -1382,8 +1382,9 @@ bool LightningProgram::linkImpl(amd::option::Options* options) { Data* correctly_rounded_sqrt_bc = C->NewBufferReference(DT_LLVM_BC, correctly_rounded_sqrt.first, correctly_rounded_sqrt.second); - auto daz_opt = - get_oclc_daz_opt(dev().hwInfo()->gfxipVersion_ < 900 || options->oVariables->DenormsAreZero); + auto daz_opt = get_oclc_daz_opt(!AMD_GPU_FORCE_SINGLE_FP_DENORM && + (dev().hwInfo()->gfxipVersion_ < 900 || + options->oVariables->DenormsAreZero)); Data* daz_opt_bc = C->NewBufferReference(DT_LLVM_BC, daz_opt.first, daz_opt.second); auto finite_only = get_oclc_finite_only(options->oVariables->FiniteMathOnly || @@ -1394,12 +1395,6 @@ bool LightningProgram::linkImpl(amd::option::Options* options) { options->oVariables->FastRelaxedMath); Data* unsafe_math_bc = C->NewBufferReference(DT_LLVM_BC, unsafe_math.first, unsafe_math.second); - if (!correctly_rounded_sqrt_bc || !daz_opt_bc || !finite_only_bc || !unsafe_math_bc) { - buildLog_ += "Error: Failed to open the control functions.\n"; - return false; - } - - if (!correctly_rounded_sqrt_bc || !daz_opt_bc || !finite_only_bc || !unsafe_math_bc) { buildLog_ += "Error: Failed to open the control functions.\n"; return false; diff --git a/projects/clr/rocclr/runtime/device/rocm/rocprogram.cpp b/projects/clr/rocclr/runtime/device/rocm/rocprogram.cpp index 6923762380..1ac7a60e42 100644 --- a/projects/clr/rocclr/runtime/device/rocm/rocprogram.cpp +++ b/projects/clr/rocclr/runtime/device/rocm/rocprogram.cpp @@ -678,8 +678,9 @@ bool HSAILProgram::linkImpl_LC(amd::option::Options* options) { Data* correctly_rounded_sqrt_bc = C->NewBufferReference(DT_LLVM_BC, correctly_rounded_sqrt.first, correctly_rounded_sqrt.second); - auto daz_opt = get_oclc_daz_opt(dev().deviceInfo().gfxipVersion_ < 900 || - options->oVariables->DenormsAreZero); + auto daz_opt = get_oclc_daz_opt(!AMD_GPU_FORCE_SINGLE_FP_DENORM && + (dev().deviceInfo().gfxipVersion_ < 900 || + options->oVariables->DenormsAreZero)); Data* daz_opt_bc = C->NewBufferReference(DT_LLVM_BC, daz_opt.first, daz_opt.second); auto finite_only = get_oclc_finite_only(options->oVariables->FiniteMathOnly ||