I've successfully compiled beignet 1.0 on Ubuntu 14.04.1 but still cannot use it for real science and math applications, to which I'm interested in. I see some improvements comparing to 0.9, but my applications still does not function correctly.
LLVM: 3.5 (prebuilt package from llvm.org) gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) Kernel: 3.13.0-40-generic CPU: Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz from clinfo: Platform ID: 0x7ff0461d1d20 Name: Intel(R) HD Graphics Haswell GT2 Desktop Vendor: Intel Device OpenCL C version: OpenCL C 1.2 beignet 1.0 (git-9068a26) Driver version: 1.0 Profile: FULL_PROFILE Version: OpenCL 1.2 beignet 1.0 (git-9068a26) I didn't enabled X and Mesa support during compilation so I'm using "drm.rnodes=1" kernel option. Since this is a Haswell CPU, I also rebuild i815 kernel module according to instructions and patch on the site. After this, I've got 100% success on self-tests: summary: ---------- total: 700 run: 700 pass: 699 fail: 0 pass rate: 1.000000 So I consider that build was correct. I've tried three math/science application and none of them are working correctly. They run, but producing incorrect results. 1) APP1: distributed.net client for openCL This is a program which is most known to me. There is a "official" prebuilt binary at http://www.distributed.net/Download_prerelease and public part of source code is available at https://github.com/dcti/dnetc-client-base . Also, I could re-compile it from source myself if additional testing will be required. This program has few computation cores. The "reference" core number 0, which is just a few lines long (rc5-ref.cl) kinda crashes: ./dnetc -test rc5-72 0 [Nov 26 18:26:19 UTC] RC5-72: using core #0 (CL ANSI 1-pipe). [Nov 26 18:26:20 UTC] Abnormal core termination! Device: 0 Other, "optimized" cores could be run but computations are incorrect, most of self-tests fails (the numbers are returned result vs expected result): ./dnetc -test rc5-72 1 [Nov 26 18:27:16 UTC] RC5-72: using core #1 (CL 1-pipe). [Nov 26 18:27:16 UTC] RC5-72: Test 01 FAILED2: 00:00000000:00000000-C9:0C0353C0:D4E1FE85 [Nov 26 18:27:16 UTC] RC5-72: Test 03 FAILED2: 00:00000000:00000000-0F:556979E7:6C009260 [Nov 26 18:27:16 UTC] RC5-72: Test 04 FAILED2: 00:00000000:00000000-9E:D8B648C6:00003A3C [Nov 26 18:27:16 UTC] RC5-72: Test 10 FAILED2: 00:00000000:00000000-2B:E01C5B9D:D65CCAD7 [Nov 26 18:27:16 UTC] RC5-72: Test 14 FAILED2: 00:00000000:00000000-C6:46E7E19D:9CD65C85 [Nov 26 18:27:16 UTC] RC5-72: Test 16 FAILED2: 00:00000000:00000000-85:EA3678CF:91DB0D2C [Nov 26 18:27:16 UTC] RC5-72: Test 19 FAILED2: 00:00000000:00000000-11:4134BDB0:175A077F [Nov 26 18:27:16 UTC] RC5-72: Test 20 FAILED2: 00:00000000:00000000-94:888FF8CB:282E6E5F [Nov 26 18:27:16 UTC] RC5-72: Test 21 FAILED2: 00:00000000:00000000-D9:48A2E6E4:CD610000 [Nov 26 18:27:16 UTC] RC5-72: Test 22 FAILED2: 00:00000000:00000000-E5:71448E83:D0860001 [Nov 26 18:27:16 UTC] RC5-72: Test 23 FAILED2: 00:00000000:00000000-3E:ED6D9F85:A6D70002 [Nov 26 18:27:16 UTC] RC5-72: Test 26 FAILED1: 56:30E19DF4:8C460000-56:30E19DF4:8C460101 [Nov 26 18:27:16 UTC] RC5-72: Test 27 FAILED1: 85:3B37FFD3:9F140000-85:3B37FFD3:9F14B33B [Nov 26 18:27:16 UTC] RC5-72: Test 28 FAILED1: 80:B75263C5:41660000-80:B75263C5:41668D03 [Nov 26 18:27:16 UTC] RC5-72: Test 30 FAILED1: 87:23A58F8F:D5940000-87:23A58F8F:D59495C1 [Nov 26 18:27:16 UTC] RC5-72: 17/32 Tests Passed (0.320960 seconds) [Nov 26 18:27:16 UTC] RC5-72: WARNING WARNING WARNING: 15 Tests FAILED!!! ./dnetc -stress rc5-72 1 [Nov 26 18:26:25 UTC] RC5-72: Stress-test 3: Pipe #1 missed a full match [Nov 26 18:26:25 UTC] RC5-72: Stress-test 3: Pipe #1 fails to set 'check.count' [Nov 26 18:26:25 UTC] Got 0x00000000, expected 0x00000001 [Nov 26 18:26:25 UTC] RC5-72: Stress-test 3: Pipe #1 fails to set 'check.hi/mid/lo' [Nov 26 18:26:25 UTC] check: 00:00000000:00000000, expected CA:DB0EF3FF:FFFFFFC0 [Nov 26 18:26:25 UTC] RC5-72: Stress-test 3: Pipe #1 - Iterations count not updated [Nov 26 18:26:25 UTC] Got 0x000000C0, expected 0x00000000 [Nov 26 18:26:25 UTC] RC5-72: Stress-test 3 FAILED Following APP2 and APP3 are from PrimeGrid (prime numbers search) projects. I don't know is their source available or not, at least I could send you a binary, and cl core source could be easily extracted from executable using hex editor. 2) tpsieve - a sieving program ./tpsieve-cl-boinc-x86_64-linux -p13120716e9 -P13120725e9 -k5 -K9999 -n6000000 -N9000000 writes stderr.txt with following: Sieve started: 13120716000000000 <= p < 13120725000000000 Thread 0 starting Detected 320 multiprocessors (1600 SPUs) on device 0. Device 0 is a 'Intel' 'Intel(R) HD Graphics Haswell GT2 Desktop'. Computation Error: Checksum mismatch for p=13120716000000031 between 10781334 and 14482143 at n=9000063. Computation Error: Checksum mismatch for p=13120716000000139 between 864764 and 6489009 at n=9000063. (and so on, lot of lines) Aborting because over 1 in 8 p's had computation errors: 2560 of 2560. 3) wwwwcl v2.2.5, a GPU program to search for Wieferich and WallSunSun primes It runs with beignet 1.0, no error messages but it's missing results (comparing output over same range to cpu-only version). Also, in the end of computations "Checksum 0000000000000000" line is printed (this number is non-zero for cpu version) If you need additional testing or information, please let me know. (Remember that I could recompile distributed.net client) _______________________________________________ Beignet mailing list Beignet@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/beignet