How well does single precision petSc implementation work?


I’m working in a research lab, and we are looking to do some simulation work. Our budget is ~$100-1500 for a GPU. The new Titan X(Pascal architecture) looks like it might fit the bill, but i have been reading that it does not have the same TCC implementation as older Titans, to help with double precision calculation.

I was wondering if anyone has any experience with trying to use sparse matrix libraries in single precision? We’re currently using Matlab, which forces double precision. We’re planning on converting to scipy, which from what i’ve found online uses PetSc (implementing PetSc directly would probably be better, but none of us are very proficient in C/C++). PetSc does have a single precision option in the documentation, but it seems like a “user uses at own risk”. It’s likely dependent on the specific matrices being solved, but are there any rule of thumbs?

It would be a shame if we were to pick up a Titan X and find that it doesn’t work at all. On the other hand, we don’t want to give up any performance by using an older model unless it’s necessary, since we have other simulations that work fine in single precision.