zuzuf / freeocl

Automatically exported from code.google.com/p/freeocl
GNU Lesser General Public License v3.0
31 stars 8 forks source link

Piglit Conformance Testing #18

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Install and run piglit (http://people.freedesktop.org/~nh/piglit/) with 
all_cl tests

What is the expected output? What do you see instead?
Ideally, all tests pass should pass. More than half do, but a good portion 
fail, and a small handful crash. (11 crash, 144 fail, 220 pass).

What version of the product are you using? On what operating system?
freeocl-svn r340 on Arch Linux 

Please provide any additional information below.
Most of the failed tests seem to be edge cases on API conformance, or certain 
missing type/operator definitions. I've been slowly working through the list 
and I've attached patches for the failed tests I've fixed so far.

Original issue reported on code.google.com by sctinc...@gmail.com on 8 Aug 2014 at 8:45

Attachments:

GoogleCodeExporter commented 9 years ago
The fast-but-inaccurate math functions break OpenCL numerical compliance. This 
is non-standard unless -cl-fast-relaxed-math is specified. I've edited math.h 
to check if __FAST_RELAXED_MATH__ is set before using the fast-but-inaccurate 
functions (otherwise using the previous slow-but-accurate functions).

Original comment by sctinc...@gmail.com on 11 Aug 2014 at 4:28

Attachments:

GoogleCodeExporter commented 9 years ago
Tweak clSetKernelArg to fix crash and return proper errors for when arg_size == 
0 in __local

Original comment by sctinc...@gmail.com on 13 Aug 2014 at 12:38

Attachments:

GoogleCodeExporter commented 9 years ago
in clGetProgramInfo: edge case where SET_VAR is not used, so required to check 
if param_value is null

Original comment by sctinc...@gmail.com on 13 Aug 2014 at 1:47

Attachments:

GoogleCodeExporter commented 9 years ago
clEnqueue{Read,Write}Buffer edge case argument validation

Original comment by sctinc...@gmail.com on 13 Aug 2014 at 9:29

Attachments:

GoogleCodeExporter commented 9 years ago
That's impressive work! Thanks!

I've been reviewing and merging half of your patches. If you are interested I 
can give you developer access to the SVN repository.

Original comment by zuzu...@gmail.com on 13 Aug 2014 at 9:34

GoogleCodeExporter commented 9 years ago
I've merged all your patches but the 0013. I've been reading the OpenCL 1.2 
specifications (revision 19) and I could not find any constraint on the 
accuracy of the native_* functions. As far as I understand this document all 
these functions could return 0 no matter their inputs. Am I reading it 
correctly ?

Original comment by zuzu...@gmail.com on 13 Aug 2014 at 10:09

GoogleCodeExporter commented 9 years ago
Thanks! And sure, I'm interested :]

You are correct. I was going by one of piglit's tests (GEGL gamma kernel), 
which complained about not meeting tolerance, but indeed the spec does state 
native_* functions have implementation-defined accuracy. This seems to be a 
case where piglit either should not be testing with native_pow, or set a much 
higher tolerance. My apologies.

Original comment by sctinc...@gmail.com on 14 Aug 2014 at 12:00

GoogleCodeExporter commented 9 years ago
You should have developer access to SVN repository now ;)

Original comment by zuzu...@gmail.com on 14 Aug 2014 at 11:47

GoogleCodeExporter commented 9 years ago
There are still a few tests that are failing/crashing. But these seems to be 
symptoms of other problems.

In the very least, freeocl "conforms" as far as I'm concerned, so I am closing 
this :]

Original comment by sctinc...@gmail.com on 2 Mar 2015 at 5:16