- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi guys,
I tried compile my own opencl kernel but KernelBuilder (32bit and 64bit too) says this log:
fc1 build 1 succeded.
fc1 build 2 succeeded.
Error: Internal Error.
And when the compiling is in-progress the ioc32 process's memory usage is almost 2 GB and the ioc64 has more than 5GB.
The same program works fine on the CPU; it only fails in the GPU. Any pointers on where to start? Thanks much (I am using OpenCL 2013 on a Windows 7 Pro with Intel HD Driver ver. 9.18.10.3071 ).
Best regards,
Leslie
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for the source. I am able to reproduce the internal error. I will take a look and get back to you.
Raghu
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
We debugged this further and it appears that the program generates a branch greater than 2^15 instructions which cannot be encoded in the current gen architecture. A simple workaround would be to rewrite the function miller_rabin_32 like this:
<code>
bool miller_rabin_32(long n)
{
bool result = false;
if (n <= 1L) result = false;
else if (n == 2L) result = true;
else if (miller_rabin_pass_32( 2L, n) &&
(n <= 7L || miller_rabin_pass_32( 7L, n)) &&
(n <= 61L || miller_rabin_pass_32(61L, n)))
result = true;
return result;
}
</code>
Hope this helps.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Unfortunately it seems not to be a good solution. I changed that method what you suggested but I get internal error yet.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sorry for the delay in responding. Actually looks like there is a bug in KernelBuilder that is responsible for the failure. You still need to remove the early returns and rewrite your kernel like I suggested below. Build your program (dont use KernelBuilder). I tried this and it seems to work.
Raghu

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page