Open valassi opened 2 years ago
Note, these issues were noted during the changes now merged in #499
I have just added -Wunused-parameter to cuda builds (I am not sure why -Wall is still off) and I noticed this
MatrixElementKernels.cc: In member function ‘void mg5amcGpu::MatrixElementKernelDevice::setGrid(int, int)’:
MatrixElementKernels.cc:233:51: warning: unused parameter ‘gpublocks’ [-Wunused-parameter]
233 | void MatrixElementKernelDevice::setGrid( const int gpublocks, const int gputhreads )
| ~~~~~~~~~~^~~~~~~~~
MatrixElementKernels.cc:233:72: warning: unused parameter ‘gputhreads’ [-Wunused-parameter]
233 | void MatrixElementKernelDevice::setGrid( const int gpublocks, const int gputhreads )
| ~~~~~~~~~~^~~~~~~~~~
The whole chain of changing gpu grid needs fixing. the number of blocks and threads is set in MEK ctor, is it confirmed that these can be changed a posteriori? To be reassess. Anyway the build warnings are there for a good reason (though I will hide these two for now)
I am recreating several summary tables for ichep22 and more.
I realised that the test I had added to test GPU branch efficiency does seem to work actually. My "8tpb" tests with 8 threads per block does seem to give a factor 4 less throughput than an optimized version with 32 threads or more per block.
This is a nice show equivalent to reducing CPU SIMD to none: if we artificially reduce the "vector processing" in GPU SIMT, then we lose. The fact that we lose maximally means that we are actually exploiting this maximally :-)
Anyway, the issue is that the tables do not seem right. In non-bridge mode I see the throughput loss, in bridge mode I do not. There is already a set_gpugrid method, but I guess this is not correctly called. See this latest ggttggg table at cern
The x88 is 1/4 of the x326. However the 2.34 E4 on the last line should be lower than the 6.49E3. The fact that it is 4x larger means that the bridge test is still proceeding with 32 threads per block or more, not the nominal 8 that the test is supposed to be testing