我在程序中遇到了與CUDA有關的性能問題。相同任務(對齊3D點雲)所花費的時間並不穩定,有時可能高出30倍。QBasicTimer干擾cuda
我使用Qt作爲主界面,它用我的工人類初始化一個線程。這個類的目的是對我的數據啓動cuda計算併發送Qt信號,這些信號將被GUI捕獲以更新OpenGl小部件的顯示。
我已經在我的OpenGL窗口小部件卸下QBasicTimer解決了我的表演問題,它被用來像這樣:
void SWGLCloudWidget::initializeGL()
{
// ...
m_oTimer->start(5, this);
}
它沒有用都沒有,但我忘了一些重構之後將其刪除。 在Qt文檔中,它說:
QBasicTimer類爲對象提供計時器事件。
這是一個Qt內部使用的快速,輕量級和低級別的類。如果你想在你的應用程序中使用定時器,我們推薦使用更高級的QTimer類而不是這個類。請注意,該定時器是一個重複定時器,它將發送後續定時器事件>除非調用stop()函數。
我想知道這個低級調用如何導致CUDA如此混亂,僅僅是爲了我的好奇心。
你重載'void QObject :: timerEvent(QTimerEvent * event)'? – UmNyobe
是的,它只包含一個updateGl調用。所以我想刷新率是爲了讓cuda獲得GPU的所有權? – Ulpaso
我用定時器的其他值做了一些測試,在20ms以下,cuda開始變得不穩定。所以gl刷新率是問題,謝謝! – Ulpaso