I've prepared a .pro file for use Qt and CUDA in a linux machine (64bits). When I run the application into the CUDA profiler, the app executes 12 times but before present the results i get the next error:
Error in profiler data file '/home/myusername/development/qtspace/bin/temp_compute_profiler_0_0.csv' at line number 6 for column 'memory transfer size.
The main.cpp file is as simple as
#include <QtCore/QCoreApplication>
extern "C"
void runCudaPart();
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
runCudaPart();
return 0;
}
The fact is that if i remove the "QCoreApplication a(argc, argv);" line the CUDA Visual Profiler works as excepted and show all the results.
I've checked that the cuda_profile.log is generated from the command line if i export the CUDA_PROFILE=1 environment variable. The comma-separated file is also generated if i export the COMPUTE_PROFILE_CSV=1 variale but the CUDA Visual Profiler crashes when i try to import that file.
Any hints about this issue? It seems something related to the CUDA visual Profiler application not with the code.
If you are wondering why i did a so simple main.cpp with Qt but without using Qt :P is that i would like improve the framework in the future to add a GUI.
// details of CUDA, GPU, OS, QT, and compiler versions
Device"GeForce GTX 480"
CUDA Driver Version: 3.20
CUDA Runtime Version: 3.20
CUDA Capability Major/Minor version number: 2.0
OS: ubuntu 10.04 LTS
QT_VERSION: 263682
QT_VERSION_STR: 4.6.2
gcc version 4.4.3
nvcc compilation tool, release 3.2, V0.2.122
I've noticed that the problem is with the QCoreApplication construct. It does something with the arguments. If I modify the line as:
QCoreApplication a();
the Visual Profiler works as excepted. Hard to know what is happening and if this change will be a problem in the future. Any hints?
Regarding to the QCoreApplication construct the example also work if I call the cuda part before the QCoreApplication.
// this way the example works.
runCudaPart();
QCoreApplication a(argc, argv);
Thanks in advance.