Dear all,
I’ve seen that composite scaling has been included in the new version 1.3.0. I’m wondering if someone would be able to clarify the state-of-the-art regarding scaling techniques when it comes to using CKKS with GPUs.
As far as I know, composite scaling represents a speed up in GPUs since it allows us to use the native 32-bit registers in GPUs while keeping high precision when the scaling factors need to be bigger than 32-bits. However, I’m wondering how this compares to a more recent paper (refer to Grafting from now on). If I understand correctly, Grafting would behave similarly to composite scaling in terms of error growth and should allow us to also work with the native 32-bit registers of GPUs keeping high precision.
However, Grafting would not have the disadvantage of losing performance when using it with larger word sizes in CPUs as opposed to composite scaling. Furthermore, with Grafting there is no concern of not having enough RNS primes since the scaling factor and the modulus are decoupled. Given these advantages I wonder if there are plans to incorporate Grafting into OpenFHE soon or if there is a reason that I’m not seeing which implies that composite scaling should be used instead to accelerate CKKS in GPUs.