Започнах да уча хетерогенно паралелно програмиране с помощта на CUDA (ще се използва десктоп, в случай че има значение) и имам въпрос, на който все още не мога да намеря отговор. Може ли gpu картата да се използва за gpgpu, докато играете 3D игра? Ако да, колко големи биха били разходите за изпълнение? И как да ги измерим? Изпълнението на приложението ми със и без игра във фонов режим не изглежда като надеждно решение.
AFAIK, gpu картата е заета с рендиране на сцени и други неща, но не знам как точно работи. Устройството заключено ли е от приложението за игра, за да не се използва за gpgpu, докато потребителят излезе от играта? Или просто получава асинхронни повиквания, за да изпълнява задачи като:
- устройството е безплатно;
- приложението за игра иска от устройството да изобрази сцена;
- устройството е заключено от играта, свършете работата, след което отново е безплатно;
- приложението ми иска от устройството да направи някои gpgpu;
- устройството е заключено от моето приложение, свърши работата, след това отново е безплатно,
- и така нататък...
Като друго решение: възможно ли е да използвам отделна gpu карта само за тази цел (може би трябва да предотвратя използването й от приложението за игра)?