sdv-dev / SDV

Synthetic data generation for tabular data
https://docs.sdv.dev/sdv
Other
2.37k stars 316 forks source link

Allow me to fit using a GPU (CUDA-enabled device) and then sample from a CPU-only device #1778

Open Faiga91 opened 9 months ago

Faiga91 commented 9 months ago

Environment Details

Please indicate the following details about the environment in which you found the bug:

Error Description

When I train the PAR synthesiser code on CUDA enabled device, then I try to generate new samples from the trained synthesizer on a CPU-only device, I get the following error:

image

npatki commented 8 months ago

Hi @Faiga91 thanks for reporting this issue.

Can you confirm that sampling works on the same CUDA-enabled device that you fitted your data on? If this doesn't work then it is indeed a bug.

As for switching to a CPU-only device for sampling: We currently do not support the use case of fitting on a GPU and then sampling from CPU. I will turn this into a feature request for us to track. We prioritize feature requests based on demand and importance to your project, so any other information you have about your use case will definitely help us prioritize.

Faiga91 commented 8 months ago

Thanks a lot for following up. It did indeed work on the same CUDA-enabled device. I managed to work around this issue, and my project is running with no issue. However, it will be nice to have a more customised error message when a user is trying to sample on a non-CUDA-enabled device.

npatki commented 8 months ago

Hi @Faiga91, no problem.

Let's keep this issue open as a feature request for allowing sampling from a CPU-only device. In the meantime, I agree that it would at least be nice to have a better error message. I will file a new issue the error message, which we can probably address even sooner.