uni-halle / gerbil

A fast and memory-efficient k-mer counter with GPU-support
MIT License
34 stars 14 forks source link

constant outputs from STAGE 2 #27

Closed jinz2014 closed 7 months ago

jinz2014 commented 7 months ago

Running the program multiple times shows that the outputs are not constant in STAGE 2. How can you make the outputs constant ? Thanks.

run 1
================== STAGE 2 ==================
kmers (CPU)     :     82422658
kmers (GPU)     :      7018980
ukmers (CPU)    :     68245232
ukmers (GPU)    :      5798378
below th (CPU)  :     65721633
below th (GPU)  :      5580007

run 2
================== STAGE 2 ==================
kmers (CPU)     :     82393097
kmers (GPU)     :      7048541
ukmers (CPU)    :     68220103
ukmers (GPU)    :      5823507
below th (CPU)  :     65697209
below th (GPU)  :      5604431
merbert commented 7 months ago

Hello, Gerbil has a 'real-time' load balancer. The distribution of the work is expected to be similar, but not equal. However, the result is always the same. e.g. run 1 82422658 + 7018980 = 89441638

run 2 82393097 + 7048541 = 89441638

Remark: In your case the GPU doesn't help much. If you want constant values in the displayed output, you can disable the GPU support. The performance loss should be less than 10%.

Best regards, Marius

jinz2014 commented 7 months ago

Hi Marius, Could the CPU execution be disabled for constant values in the displayed output ? Thank you.

merbert commented 7 months ago

No, that's not possible. Why is it important for you that the values from the GPU are constant?

jinz2014 commented 7 months ago

I am not clear how you verify the GPU results.