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:
@@ -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_;
|
||||
|
||||
Reference in New Issue
Block a user