I'm working on an N-Body simulation using C#, Cloo, and XNA. Sometimes it will run for quite a while without any problems, but it will randomly lock up, sometimes only after a couple seconds of beginning. I'm not able to catch any exceptions, and I know its not a problem with my kernel because I commented out every line of code within in it and it still has the same problem. I tried a process of elimination, maybe it was something to do with memory access so I commented out all of that and only left the code to execute the kernel (the kernel was also blanked out) and the process would still hang after some random amount of time.
Maybe I should stop being lazy and get down to business with C++ and real CUDA if it is a problem with openCL, but since I got everything basically working already I would like to see if I can fix this problem.
Alright I figured out that I'm getting an MemoryObjectAllocationFailure exception. How do I prevent this?
random lock ups that don't throw any exceptions are usually caused by the drivers. Also you might try running your program on a different platform. For example ATI Stream offers ComputeDeviceTypes.CPU functionality with higher memory limits. If your simulation fits in there, you're hitting memory barriers in your current device.
Also see this thread for some memory related (quite interesting) info and tests: http://sourceforge.net/projects/cloo/forums/forum/1048266/topic/3656879
Sign up for the SourceForge newsletter:
You seem to have CSS turned off.
Please don't fill out this field.