unzvfu / cuda-fixnum

Extended-precision modular arithmetic library that targets CUDA.
MIT License
34 stars 8 forks source link

Exploit concurrency of integer and floating point operations #38

Open unzvfu opened 4 years ago

unzvfu commented 4 years ago

In the section entitled "Integer vs. Floating-Point Operations in GPUs" of this article, they claim that

Turing moves to concurrent execution of FP32 and INT32 operations, whereas Pascal would suffer a pipeline stall when an INT operation had to be calculated. Now, rather than stall the FPUs to allow a single INT operation to execute, they can execute simultaneously. This is allowed by independent datapaths for both the integer and floating-point units.

This could be exploited by having part of a fixnum stored with integer base and part with float base. Or interleave calculations on two fixnums, one with integer base and one with float base.