-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
libocl segfault with simple c++ client when configured for RPC #15
Comments
I tested the code below and it worked with various configurations running a CLRPC server on machine using both AMD and Can you run both the server and the client using cldebug -- and send the output. This will help identify what might be stevechk wrote:
David Richie, Ph.D. |
Machine is ubuntu 12.04 64-bit with an Nvidia GT610 card. I've softlinked the default libOpenCL.so to point to libocl.so. C++ program debug:
RPCD (same box)
I get the same error even when running rpcd on a different host with an AMD 270x. |
I compared the output to successful run on the machine here. Can you tell me what versions of the Nvidia and Intel SDKs you have installed? Also, when you compile your test program it will select a cl.h file from somewhere. Can you send that cl.h file? The seg fault appears to be caused by a very bad string being passed back. What I noticed are some differences in the stevechk wrote:
David Richie, Ph.D. |
I grabbed the standard OpenCL1.2 includes for the build. I tried copying these over to the coprthr/include directory, and overwriting the ones that were there and rebuilding both coprthr and the code, but still got the same error. Btw the ocl.conf files are: (cl.cpp)
(rpcd)
|
try this. ocl.conf for the client (cl.cpp): platforms = ( { platform="coprthr"; lib="libcoprthr.so"; }); /icd_dirs = ( "/etc/OpenCL/vendors/" );/ clrpc = { and ocl.conf for the server (clrpcd): platforms = ( /* icd_dirs = ( "/etc/OpenCL/vendors/" ); *. /* tell me what happens or send cldebug output. i libocl was encountering both libcuda.so and libnvidia_opencl.so and also encountering libcoprthr.so. two of these are not uptodate, but i am not sure if that is having any effect, they appear to be skipped during the stevechk wrote:
David Richie, Ph.D. |
Same issue - here are the updated logs. One question I had was around the local vs. remote mapping. The client crashes on the following line:
but the line further up suggests that this is the remote value:
so when should calls be using the local context, and when should they be using the remote one? what is the difference between the local and remote values? Updated logs... Client
RPCD
|
Ok. I think I figured this out. A few things going on. First, the cl.hpp I have cannot be the same as what you have However, it is there so it should be treated. We will try to get this added since apparently you cannot use some To your question regarding local vs. remote pointers. the only people who must worry about this are CLRPC developers, stevechk wrote:
David Richie, Ph.D. |
The specific cause of the seg fault has been fixed on stable-1.6 branch. See commit 1cef371 |
Running a simple OpenCL C++ example - works fine when libocl is configured to use ICD, but when configured to use RPC it segfaults in clGetPlatformInfo.
Any ideas?
Example program:
The text was updated successfully, but these errors were encountered: