Ответ на первый вопрос заключается в том, что вы явно связываете старую версию библиотеки времени выполнения CUDA. cudaDeviceReset
- это новое дополнение к API, представленное в CUDA 4.0. Поэтому дважды проверьте правила сборки и убедитесь, что вы действительно указываете компоновщик на инструментарий CUDA 4.0, а не на более раннюю версию
Вторая часть вашего вопроса звучит как вопрос "хай плз, дайте мне код", и это не совсем то, для чего это место. Однако я дам вам ссылку на GPUWorker (код, в настоящее время доступный здесь ), который представляет собой многопользовательский фреймворк с поддержкой потоков, изначально входивший в пакет молекулярной динамики HOOMD. Он должен дать вам несколько советов о том, как сделать многопоточный, многопользовательский код, даже если GPUWorker окажется не соответствующим вашим потребностям.