AnsweredAssumed Answered

Segfault in libamdocl64.so under Linux.

Question asked by akphysics on Apr 16, 2012
Latest reply on Apr 16, 2012 by akphysics

Hi, I'm developing a physics simulator that involves running about 8 different kernels that run in a loop.  I use events as some operations can happen in parallel, though, I'm not using an out-of-order command queue yet.  That said..  after queueing hundreds of thousands of iterations..  Memory usage quickly balloons out of control and then I get a segfault.

 

<code>

Program received signal SIGSEGV, Segmentation fault.

0x00007ffff5d6fcd7 in amd::Command::~Command() () from /usr/lib64/OpenCL/vendors/amd/libamdocl64.so

 

(gdb) bt

#0  0x00007ffff5d6fcd7 in amd::Command::~Command() () from /usr/lib64/OpenCL/vendors/amd/libamdocl64.so

#1  0x00007ffff5d70b1a in amd::NDRangeKernelCommand::~NDRangeKernelCommand() () from /usr/lib64/OpenCL/vendors/amd/libamdocl64.so

#2  0x00007ffff5d7b8f8 in amd::ReferenceCountedObject::release() () from /usr/lib64/OpenCL/vendors/amd/libamdocl64.so

#3  0x00007ffff5d6fcdc in amd::Command::~Command() () from /usr/lib64/OpenCL/vendors/amd/libamdocl64.so

#4  0x00007ffff5d70b1a in amd::NDRangeKernelCommand::~NDRangeKernelCommand() () from /usr/lib64/OpenCL/vendors/amd/libamdocl64.so

#5  0x00007ffff5d7b8f8 in amd::ReferenceCountedObject::release() () from /usr/lib64/OpenCL/vendors/amd/libamdocl64.so

#6  0x00007ffff5d6fcdc in amd::Command::~Command() () from /usr/lib64/OpenCL/vendors/amd/libamdocl64.so

#7  0x00007ffff5d70b1a in amd::NDRangeKernelCommand::~NDRangeKernelCommand() () from /usr/lib64/OpenCL/vendors/amd/libamdocl64.so

#8  0x00007ffff5d7b8f8 in amd::ReferenceCountedObject::release() () from /usr/lib64/OpenCL/vendors/amd/libamdocl64.so

#9  0x00007ffff5d6fcdc in amd::Command::~Command() () from /usr/lib64/OpenCL/vendors/amd/libamdocl64.so

#10 0x00007ffff5d70b1a in amd::NDRangeKernelCommand::~NDRangeKernelCommand() () from /usr/lib64/OpenCL/vendors/amd/libamdocl64.so

#11 0x00007ffff5d7b8f8 in amd::ReferenceCountedObject::release() () from /usr/lib64/OpenCL/vendors/amd/libamdocl64.so

[repeated more than 30000 times, don't know how far it goes.  Aside, I've never seen a backtrace more than 100 deep.]

</code>

 

I'm using OpenCL 1.1 AMD-APP (898.1)

 

Any ideas?

Outcomes