Sounds like you need a better library for int. something that handles really really big ints.
Imho there is no better library out there for GPUs. I'm hacking on the mpz library from a cuda-rsa student project, which is in my repo (https://github.com/primedigger/primecoin/blob/master/src/cuda/mpz.h). It uses its own structures for big ints and that's why you can't exactly load gmp mpz_t into the GPU - I'm using hex strings for that. The library had a function for loading numbers from hex strings, but unfortunately that function is a bit buggy. I guess in the long run, it would be wiser to assemble the GPU's big int data structures on the CPU.