CUDA OpenGL медленное взаимодействие (может быть отображение ресурсов) - PullRequest
0 голосов
/ 17 октября 2019

Я использую взаимодействие GL-CUDA для доступа к визуализированному каналу цвета GL в пользовательском ядре CUDA. Мой код работал на машине с Windows, но теперь я переключаюсь на машину с Linux, и внезапно ресурсы отображения становятся очень медленными. После удаления всего ненужного кода возникает проблема:

        _viewer.launch_init(false, false, "test", 800, 600);                       
        _viewer.launch_rendering(false);                                                                                                                       
        for (int ii=0; ii<20; ++ii) {                                              
            GLuint pbo_test;                                                       
            glGenBuffers(1, &pbo_test);                                            
            cudaGraphicsResource *res;                                                                                                            
            glBindBuffer(GL_PIXEL_PACK_BUFFER, pbo_test);                          
            glBufferData(GL_PIXEL_PACK_BUFFER, window_width*window_height*3*4, NULL, GL_STREAM_READ); // RGB floats
            cudaGraphicsGLRegisterBuffer(&res, pbo_test, cudaGraphicsRegisterFlagsNone);
            gpuErrchk(cudaGraphicsMapResources(1, &res, 0));                       
            // do something in cuda...
            gpuErrchk(cudaGraphicsUnmapResources(1, &res, 0));                     
        }

Как видите, это просто визуализирует контент один раз, а затем пытается несколько раз упаковать его в PBO и отобразить/ unmap ресурсы. Обычно я помещаю что-то промежуточное, но этот шаг map / unmap очень медленный, иногда занимает десятки секунд и останавливает мой экран. Любая помощь приветствуется.

Я попытался отключить мой второй экран. Переключитесь на более низкую версию CUDA. Я мог бы попытаться поменять графический процессор на другой, чтобы посмотреть, поможет ли он с этой проблемой.

У меня Linux Ubuntu 14.04LTS, CUDA 10.1 (также пробовал с 9.2), и я использую OpenGL 330. Графический процессор представляет собой гигабайт RTX 2080 Ti. До этого он работал на Windows 10 с CUDA 10.1 на Nvidia RTX 2080 Ti. Работая, я имел в виду, что он может работать со скоростью 60 кадров в секунду достаточно плавно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...