Intel / OpenCL binaries for Linux (2015)

Message boards : Number crunching : Intel / OpenCL binaries for Linux (2015)
Message board moderation

To post messages, you must log in.

AuthorMessage
Profile ralphw
Volunteer tester

Send message
Joined: 7 May 99
Posts: 78
Credit: 18,032,718
RAC: 38
United States
Message 1745083 - Posted: 26 Nov 2015, 19:09:02 UTC

I'm looking for answers to two questions:

1) Does the "Intel HD" graphics capability baked into the J2900 processor offer any potential benefit to SETI crunching?

26-Nov-2015 11:34:34 [---] No usable GPUs found
26-Nov-2015 11:34:34 [---] Creating new client state file
26-Nov-2015 11:34:34 [---] Host name: xyzzy
26-Nov-2015 11:34:34 [---] Processor: 4 GenuineIntel Intel(R) Pentium(R) CPU J2
900 @ 2.41GHz [Family 6 Model 55 Stepping 8]
26-Nov-2015 11:34:34 [---] Processor features: fpu vme de pse tsc msr pae mce cx
8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht
tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xto
pology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ss
se3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer rdrand lahf_lm
3dnowprefetch ida arat epb dtherm tpr_shadow vnmi flexpriority ept vpid tsc_adju
st smep erms

2) Linux 64-bit builds seem to offer no OpenCL/Intel client. Is there a minimum level of Intel GPU capability that can be supported? (The J2900 only claims to have 4 cores, vs hundreds of cores in other Intel graphics features)

Here's the list of SETI@home apps and the hardware they support

Windows/x86
7.07 (opencl_intel_gpu_sah) 14 Jul 2015 (19,276 GigaFLOPS)

Mac OS/X 10.3+
7.00 29 May 2013, (162 GigaFLOPS)

Mac OS X/Intel
7.00 29 May 2013 (1,655 GigaFLOPS)

Linux/x86_64
7.01 29 May 2013 (39,858 GigaFLOPS)
7.08 (opencl_ati5_cat132) 18 Sep 2015 (97 GigaFLOPS)
7.08 (opencl_ati5_nocal) 18 Sep 2015 (163 GigaFLOPS)
7.08 (opencl_ati5_sah) 18 Sep 2015 (0 GigaFLOPS)
7.08 (opencl_ati_cat132) 18 Sep 2015 (60 GigaFLOPS)
7.08 (opencl_ati_nocal) 18 Sep 2015 (15 GigaFLOPS)
7.08 (opencl_ati_sah) 18 Sep 2015 (29 GigaFLOPS)
7.08 (opencl_nvidia_sah) 18 Sep 2015 (3,672 GigaFLOPS)
NO opencl_intel client here
[/quote]
ID: 1745083 · Report as offensive
Claggy
Volunteer tester

Send message
Joined: 5 Jul 99
Posts: 4654
Credit: 47,537,079
RAC: 4
United Kingdom
Message 1745084 - Posted: 26 Nov 2015, 19:17:07 UTC - in response to Message 1745083.  
Last modified: 26 Nov 2015, 19:23:47 UTC

There isn't any official Intel OpenCL GPU support for Linux, the only way to get Intel OpenCL GPU support is to use the open source Beignet project,
app development is still in the early stage of development.

https://01.org/beignet

http://www.freedesktop.org/wiki/Software/Beignet/

Claggy
ID: 1745084 · Report as offensive
Urs Echternacht
Volunteer tester
Avatar

Send message
Joined: 15 May 99
Posts: 692
Credit: 135,197,781
RAC: 211
Germany
Message 1745111 - Posted: 26 Nov 2015, 22:40:37 UTC

I'm still hesitating to publish the OpenCL Intel binary at lunatics while writing the instructions on how to make it work.
It is running on this host alright.
That is, it works on "Ivy Bridge". Minimum linux kernel required is version 3.10

So, ralphw, is your J2900 CPU from generation "Ivy Bridge" (same as 3rd generation Core i) ? If yes,
then it might be worth to give it a try and install the Beignet OpenCL driver (1.03 or newer) and make sure that you have at least Mesa version 10.5 installed.

If the CPUs origin is from 4th generation and you use a Linux kernel from 3.15 - 4.1 then i cannot recommend usage.
_\|/_
U r s
ID: 1745111 · Report as offensive
Juha
Volunteer tester

Send message
Joined: 7 Mar 04
Posts: 388
Credit: 1,857,738
RAC: 0
Finland
Message 1745304 - Posted: 27 Nov 2015, 21:32:30 UTC - in response to Message 1745111.  

If you are thinking of having it tested at Beta.

Since 1.0.3 or 1.1.0 (I forget which) Beignet launches a small test kernel when it is queried for supported devices. If the kernel succeeds then everything continues as normal but if the kernel fails then Beignet reports that there is no supported devices.

So you could set up two plan classes, one that requires Beignet 1.0.3+ and kernel 3.10+ for Ivy Bridge and another that requires Beignet 1.1.0+ for Haswell and newer (1.0.3 might have had some other issues with Haswell). Or to make life easier just one plan class that requires Beignet 1.1.0+.
ID: 1745304 · Report as offensive
Profile ralphw
Volunteer tester

Send message
Joined: 7 May 99
Posts: 78
Credit: 18,032,718
RAC: 38
United States
Message 1745469 - Posted: 28 Nov 2015, 20:58:13 UTC - in response to Message 1745111.  

I'll play around with Beignet this weekend.

Intel HD Graphics Desktop (Bay Trail) is the GPU family - just 4 execution units for the GPU - it's designed for low power consumption - a "notebook GPU"
http://setiathome.berkeley.edu/show_host_detail.php?hostid=7834880

www.notebookcheck.net/Intel-Pentium-J2900-Desktop-Processor.105900.0.html
has some additional details on clock rates, etc.
ID: 1745469 · Report as offensive
Profile ralphw
Volunteer tester

Send message
Joined: 7 May 99
Posts: 78
Credit: 18,032,718
RAC: 38
United States
Message 1754032 - Posted: 5 Jan 2016, 2:53:25 UTC - in response to Message 1745084.  

Is there direct support for the Intel Graphics (HD 4600) chip?

I'm now using a motherboard with an Intel i7 4790k, plus a couple of NVIDIA GEFORCE GTX 950s. Having all three doing GPU tasks would be wonderful.

The OS X Science app seems to be able to do this, though it seems both chips are using OpenCL support:


  • NVIDIA GeForce GT 750M (2048MB) OpenCL: 1.2,
  • INTEL Iris Pro (1536MB) OpenCL: 1.2



If I need to install Darwin (Unix) on this Linux (Unix) box, I'll give that a shot if it means more RAC.


ID: 1754032 · Report as offensive
Profile ralphw
Volunteer tester

Send message
Joined: 7 May 99
Posts: 78
Credit: 18,032,718
RAC: 38
United States
Message 1756480 - Posted: 15 Jan 2016, 5:44:52 UTC - in response to Message 1745084.  

My experiment with Beignet doesn't appear to be successful with Astropulse 7.0.8.
My machine has three GPUs (Nvidia GTX 750Ti), plus the Intel HD 4600 graphics.

I think it's getting confused, thinking it sees two Nvidias, but trying to use the Intel. Would trying an older NVidia driver help?



https://setiathome.berkeley.edu/result.php?resultid=4662135832
....

<core_client_version>7.2.42</core_client_version>
<![CDATA[
<message>
process exited with code 193 (0xc1, -63)
</message>
<stderr_txt>
Running on device number: 0
OpenCL platform detected: NVIDIA Corporation
Number of OpenCL devices found : 2
BOINC assigns slot on device #0.
Info: BOINC provided OpenCL device ID used
Used GPU device parameters are:
Number of compute units: 5
Single buffer allocation size: 256MB
Total device global memory: 2047MB
max WG size: 1024
local mem type: Real
FERMI path used: yes
-unroll default value used: 5
-ffa_block default value used: 1280
-ffa_block_fetch default value used: 640
AstroPulse v7.08
Linux 64 bit, Rev 2751, OpenCL version by Raistmer, GPU mode
V7, by Raistmer ported to Linux by Lunatics.kwsn.net team.
by Urs Echternacht
ffa threshold mods by Joe Segur
SSE3 dechirping by JDWhale using SSE3 emulation

Build features: Non-graphics OpenCL USE_OPENCL_NV OCL_ZERO_COPY OPENCL_WRITE COMBINED_DECHIRP_KERNEL SMALL_CHIRP_TABLE TWIN_FFA FFTW BLANKIT USE_INCREASED_PRECISION SSE2 64bit
System: Linux x86_64 Kernel: 3.16.0-38-generic
CPU : Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz
8 core(s), Speed : 4300.000 MHz
L1 : 64 KB, Cache : 8192 KB

Number of OpenCL platforms: 2


OpenCL Platform Name: NVIDIA CUDA
Number of devices: 2
Max compute units: 5
Max work group size: 1024
Max clock frequency: 1254Mhz
Max memory allocation: 536821760
Cache type: Read/Write
Cache line size: 128
Cache size: 81920
Global memory size: 2147287040
Constant buffer size: 65536
Max number of constant args: 9
Local memory type: Scratchpad
Local memory size: 49152
Queue properties:
Out-of-Order: Yes
Name: GeForce GTX 750 Ti
Vendor: NVIDIA Corporation
Driver version: 352.63
Version: OpenCL 1.2 CUDA
Extensions: cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_copy_opts cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64
Max compute units: 5
Max work group size: 1024
Max clock frequency: 1254Mhz
Max memory allocation: 536821760
Cache type: Read/Write
Cache line size: 128
Cache size: 81920
Global memory size: 2147287040
Constant buffer size: 65536
Max number of constant args: 9
Local memory type: Scratchpad
Local memory size: 49152
Queue properties:
Out-of-Order: Yes
Name: GeForce GTX 750 Ti
Vendor: NVIDIA Corporation
Driver version: 352.63
Version: OpenCL 1.2 CUDA
Extensions: cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_copy_opts cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64


OpenCL Platform Name: Experiment Intel Gen OCL Driver
DRM_IOCTL_I915_GEM_APERTURE failed: Invalid argument
Assuming 131072kB available aperture size.
May lead to reduced performance or incorrect rendering.
get chip id failed: -1 [22]
param: 4, val: 0
SIGSEGV: segmentation violation
Stack trace (15 frames):
../../projects/setiathome.berkeley.edu/astropulse_7.08_x86_64-pc-linux-gnu__opencl_nvidia_100(boinc_catch_signal+0x4d)[0x4c6fdd]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x10340)[0x7fc8c8194340]
/usr/lib/x86_64-linux-gnu/libdrm_intel.so.1(drm_intel_bufmgr_gem_enable_reuse+0x0)[0x7fc8c2f4d0d0]
/usr/lib/beignet/libcl.so(+0x13b58)[0x7fc8c4a5eb58]
/usr/lib/beignet/libcl.so(+0x13d07)[0x7fc8c4a5ed07]
/usr/lib/beignet/libcl.so(+0x13e21)[0x7fc8c4a5ee21]
/usr/lib/beignet/libcl.so(+0x13f08)[0x7fc8c4a5ef08]
/usr/lib/beignet/libcl.so(+0xf45d)[0x7fc8c4a5a45d]
/usr/lib/beignet/libcl.so(+0xf521)[0x7fc8c4a5a521]
../../projects/setiathome.berkeley.edu/astropulse_7.08_x86_64-pc-linux-gnu__opencl_nvidia_100[0x4885df]
../../projects/setiathome.berkeley.edu/astropulse_7.08_x86_64-pc-linux-gnu__opencl_nvidia_100[0x488dfc]
../../projects/setiathome.berkeley.edu/astropulse_7.08_x86_64-pc-linux-gnu__opencl_nvidia_100[0x461896]
../../projects/setiathome.berkeley.edu/astropulse_7.08_x86_64-pc-linux-gnu__opencl_nvidia_100[0x46a205]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7fc8c719dec5]
../../projects/setiathome.berkeley.edu/astropulse_7.08_x86_64-pc-linux-gnu__opencl_nvidia_100[0x40bd89]

Exiting...

</stderr_txt>
]]>

ID: 1756480 · Report as offensive
Juha
Volunteer tester

Send message
Joined: 7 Mar 04
Posts: 388
Credit: 1,857,738
RAC: 0
Finland
Message 1756711 - Posted: 15 Jan 2016, 22:47:23 UTC - in response to Message 1756480.  

First of all, which Beignet version? Since you have Haswell anything older than 1.1.0 is not going to work.

And then the kernel version, stock 3.16 doesn't work. It might work if patched, 4.1 with i915.enable_ppgtt=2 on the kernel command line works and stock 4.2 should work. If you run Ubuntu you can find newer kernel versions in kernel-ppa, although you need to make sure your NVIDIA drivers support the newer kernel version.

And then there's the problem with using GPUs from multiple vendors and using proprietary drivers. That just doesn't work out of the box. You are probably using NVIDIAs to drive X. If that's the case then you need to run Beignet as if there is no X. Either run BOINC as root (bad idea) or add drm.rnodes=1 to the kernel command line (better idea).

If you like you can alternately use the Intel GPU to drive X and keep NVIDIAs as crunching only devices, in which case you need a version of NVIDIA drivers that don't require X. Driver version that comes with nvidia-modprove is probably good but I don't really know. You also need to tell X to not touch anything NVIDIA. Google tells you how.

Since the science app crashed while it was listing GPU features you can use clinfo to test whether your setup works or not, waiting for APs to trash is not necessary. As long as clinfo crashes or doesn't list everything correctly you can assume the science app isn't going to work properly either.

As for how many NVIDIA GPUs you have, both BOINC and the app list only two GPUs. If you really have three installed you should maybe check whether it's properly seated and all power cables connected and all that. You may or may not need to connect a monitor/dummy plug to the card. You could use lspci to see if the card was detected at all.
ID: 1756711 · Report as offensive

Message boards : Number crunching : Intel / OpenCL binaries for Linux (2015)


 
©2024 University of California
 
SETI@home and Astropulse are funded by grants from the National Science Foundation, NASA, and donations from SETI@home volunteers. AstroPulse is funded in part by the NSF through grant AST-0307956.