P4 to Git Change 1196959 by jatang@jatang-opencl-hsa-stg2 on 2015/10/05 15:47:53

SWDEV-77321 - Change some Wave Limiter variables to 64bit to avoid integer overflow.

	Luxmark v3.0 is getting performance regression due to incorrect adapting result caused by integer overflow:

	ratio_[wave] = trial_[wave] * 100 / reference_[wave];

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuwavelimiter.hpp#5 edit


[ROCm/clr commit: 112a70b4ec]
This commit is contained in:
foreman
2015-10-05 15:53:47 -04:00
parent eb828d74ed
commit 6039d4e884
@@ -50,7 +50,7 @@ protected:
std::vector<char> state_;
};
std::vector<ulong> measure_;
std::vector<uint64_t> measure_;
bool enable_;
uint SIMDPerSH_; // Number of SIMDs per SH
uint waves_; // Waves per SIMD to be set
@@ -91,9 +91,9 @@ public:
explicit WLAlgorithmSmooth(Kernel* owner, uint seqNum, bool enable, bool enableDump);
virtual ~WLAlgorithmSmooth();
private:
std::vector<ulong> reference_;
std::vector<ulong> trial_;
std::vector<ulong> ratio_;
std::vector<uint64_t> reference_;
std::vector<uint64_t> trial_;
std::vector<uint64_t> ratio_;
bool discontinuous_; // Measured data is discontinuous
uint dynRunCount_;
uint dataCount_;