client: add simd_instruction_width to the peak FLOPS calculation.

A small attempt at future proofing things.  The value is 1 on my new GPU, but might not be on higher end cards.  Docs implies it should be part of the calculation.
This commit is contained in:
Rom Walton 2016-01-07 11:44:35 -05:00
parent b9981d7a56
commit d147f0aa35
1 changed files with 8 additions and 1 deletions

View File

@ -774,13 +774,20 @@ void COPROC_ATI::set_peak_flops() {
x = attribs.numberOfSIMD * attribs.wavefrontSize * 5 * attribs.engineClock * 1.e6;
// clock is in MHz
} else if (opencl_prop.amd_simd_per_compute_unit) {
// OpenCL w/ cl_amd_device_attribute_query extension
// Per: https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units
//
// Single precision performance is calculated as two times the number of shaders multiplied by the base core clock speed.
//
// clock is in MHz
x = opencl_prop.max_compute_units * opencl_prop.amd_simd_per_compute_unit * opencl_prop.amd_simd_width * 2 * (opencl_prop.max_clock_frequency * 1.e6);
x = opencl_prop.max_compute_units *
opencl_prop.amd_simd_per_compute_unit *
opencl_prop.amd_simd_width *
opencl_prop.amd_simd_instruction_width *
2 *
(opencl_prop.max_clock_frequency * 1.e6);
} else if (opencl_prop.max_compute_units) {
// OpenCL gives us only:
// - max_compute_units