AnsweredAssumed Answered

Crash AMD CodeXL in "OpenCl multi watch"

Question asked by qqchose on Mar 22, 2013
Latest reply on Apr 15, 2013 by qqchose

Hi

 

I got issues with CodeXL. The demo seems working, but I got crash in our project.

 

I have catalyst 13.3 Beta. I tried 13.1, but this this version don’t work with my video card and I crash each time I call wglCreateContext. I tried 12.10, same crash. I tried 12.8, but now, each time I try to open Visual studio or “AMD CodeXL” I got an error message. I have AMD_CodeXL_1.1.2885.


I have a dummy kernel and this kernel is almost empty. If I add a breakpoint in this kernel something bad happen. I found this: If I call my kernel with a global work size equal to 10, I can debug my kernel. If my global work size is 11, now the debugger stops on my breakpoint, but if I select a variable in OpenCL Multi-Watch window the debugger crash with this log

 

CodeXL - Second Chance Exception

CodeXL - Thread Terminated: 5928

CodeXL - Thread Terminated: 2036

CodeXL - Thread Terminated: 1460

CodeXL - Thread Terminated: 2988

CodeXL - Thread Terminated: 5932

CodeXL - Thread Terminated: 3780

CodeXL - Thread Terminated: 6056

CodeXL - Thread Terminated: 6140

CodeXL - Thread Terminated: 5064

CodeXL - Thread Terminated: 5068

CodeXL - Thread Terminated: 5920

CodeXL - Thread Terminated: 5524

CodeXL - Thread Terminated: 3444

CodeXL - Process Exit

 

If my global work size is 608, now the debugger crash immediately when the breakpoint is reach. I try in “AMD CodeXL” and I got the same crash as soon I reach my breakpoint.

Then, can I get some help?

There is a list of other issues I got.

 

1 - Demo AMDTTeaPot crash. In file

“…\AMDTTeaPotLib\src\AMDTTeapotOCLSmokeSystem.cpp”

 

I crashed when I reach

if (smokeSimulation->getPlatform() == volumeSlicing->getPlatform())”

 

Those variables are uninitialized. I have to change the function

bool AMDTTeapotOCLSmokeSystem::chooseBestDevices()

 

and change

                else

                {

                        // Set the best GPU and CPU device that will be used by the programs.

                        // If there is no GPU device, use the CPU.

                        _changeSmokeSimDevice = firstGPUDevice ? firstGPUDevice : bestCPUDevice;

                        _changeVolSliceDevice = firstGPUDevice ? firstGPUDevice : bestCPUDevice;

                        _dirtyFlags |= DIRTY_DEVICES;

                }

To

//                 else

//                 {

                        // Set the best GPU and CPU device that will be used by the programs.

                        // If there is no GPU device, use the CPU.

                        _changeSmokeSimDevice = firstGPUDevice ? firstGPUDevice : bestCPUDevice;

                        _changeVolSliceDevice = firstGPUDevice ? firstGPUDevice : bestCPUDevice;

                        _dirtyFlags |= DIRTY_DEVICES;

//                 }

 

2- When I try to debug my kernel. The debugger crashed while compiling kernel. I investigated and found this: we had a function with a call to “cos” inside. I change to “native_cos” and now the compiler didn’t crash.

 

3- While compiling, the compilation take a long time and my computer hang and I had to reboot. I investigated and found our “#include” was a mess. I clean up and I finally was able to compile.

 

4- I try to add a breakpoint, but I crash each time I reached a breakpoint. I investiguated and found, the debugger crash if we push a NULL parameter like

clSetKernelArg(myKernel, 0, sizeof(cl_mem), NULL);

 

If I create a dummy buffer instead to pass NULL, I can now get a breakpoint.

 

5- My current issue

Outcomes