LLVM ERROR?
log in

Advanced search

Message boards : Unix/Linux : LLVM ERROR?

Author Message
cyrusNGC_224@P3D
Send message
Joined: 5 May 14
Posts: 7
Credit: 2,375,501,648
RAC: 952,417
Message 19423 - Posted: 10 May 2014, 11:10:23 UTC
Last modified: 10 May 2014, 11:12:56 UTC

There any idea what's the cause?

http://boinc.thesonntags.com/collatz/result.php?resultid=6513255

<core_client_version>7.2.42</core_client_version>
<![CDATA[
<message>
process exited with code 1 (0x1, -255)
</message>
<stderr_txt>
Collatz Conjecture v6.05 x86_64 for OpenCL
Based on the AMD Brook+ kernels by Gipsel
Platform: ADVANCED MICRO DEVICES
Device: 32370400
OpenCL context created
OpenCL command queue created
OpenCL program created
LLVM ERROR: Cannot select: 0x20e6970: i8 = setcc 0x2116e10, 0x20e7880, 0x20e6870 [ID=31]
0x2116e10: i32 = AMDILISD::ADD 0x20e7880, 0x20e7580 [ID=30]
0x20e7880: i32 = AMDILISD::VEXTRACT 0x20e6570, 0x2117b10 [ORD=18] [ID=22]
0x20e6570: v4i32,ch = CopyFromReg 0x2426e50, 0x20e6170 [ORD=12] [ID=18]
0x20e6170: v4i32 = Register %vreg20 [ORD=12] [ID=1]
0x2117b10: i32 = TargetConstant<2> [ORD=18] [ID=16]
0x20e7580: i32 = and 0x2117910, 0x2117210 [ORD=25] [ID=29]
0x2117910: i32 = any_extend 0x20e7780 [ORD=25] [ID=28]
0x20e7780: i8 = setcc 0x2117610, 0x2117710, 0x20e6870 [ID=25]
0x2117610: i32 = AMDILISD::ADD 0x2117710, 0x2117a10 [ID=24]
0x2117710: i32 = AMDILISD::VEXTRACT 0x20e6570, 0x20e6070 [ORD=12] [ID=23]
0x20e6570: v4i32,ch = CopyFromReg 0x2426e50, 0x20e6170 [ORD=12] [ID=18]
0x20e6170: v4i32 = Register %vreg20 [ORD=12] [ID=1]
0x20e6070: i32 = TargetConstant<1> [ORD=15] [ID=14]
0x2117a10: i32,ch = CopyFromReg 0x2426e50, 0x2117310 [ORD=13] [ID=19]
0x2117310: i32 = Register %vreg1 [ORD=13] [ID=3]
0x2117710: i32 = AMDILISD::VEXTRACT 0x20e6570, 0x20e6070 [ORD=12] [ID=23]
0x20e6570: v4i32,ch = CopyFromReg 0x2426e50, 0x20e6170 [ORD=12] [ID=18]
0x20e6170: v4i32 = Register %vreg20 [ORD=12] [ID=1]
0x20e6070: i32 = TargetConstant<1> [ORD=15] [ID=14]
0x2117210: i32 = Constant<1> [ORD=18] [ID=5]
0x20e7880: i32 = AMDILISD::VEXTRACT 0x20e6570, 0x2117b10 [ORD=18] [ID=22]
0x20e6570: v4i32,ch = CopyFromReg 0x2426e50, 0x20e6170 [ORD=12] [ID=18]
0x20e6170: v4i32 = Register %vreg20 [ORD=12] [ID=1]
0x2117b10: i32 = TargetConstant<2> [ORD=18] [ID=16]

</stderr_txt>
]]>


AMD P2 6x 1090T, XFX7870 (tahiti)
Debian testing, Kernel 3.13-1-amd64, fglrx-driver 1:14.4-2
Other project are working pretty good (MW, Einstein, Seti, Primegrid.

Profile Slicker
Volunteer moderator
Project administrator
Project developer
Project tester
Project scientist
Avatar
Send message
Joined: 11 Jun 09
Posts: 2525
Credit: 740,580,099
RAC: 1
Message 19442 - Posted: 11 May 2014, 13:41:56 UTC

I think that's a similar issue that occurs on OS X which is more or less BSD Unix under the hood. Since the same OpenCL executable works fine with Intel GPUs, Intel CPUs, and nVidia GPUs, one has to question whether AMD's kernel compiler/optimizer works properly. I submitted the issue to AMD a year ago and they were able to duplicate it and said they would send it on to the engineers. Several other people agreed that they were running into the same problem. That's the last anyone has ever heard. It seems they have fixed the issue with the Windows version but still haven't fixed it with either the Linux or OS X drivers.

cyrusNGC_224@P3D
Send message
Joined: 5 May 14
Posts: 7
Credit: 2,375,501,648
RAC: 952,417
Message 19443 - Posted: 11 May 2014, 18:16:53 UTC

Thanks for the response.
The strange thing is that others with similar hardware under Linux, mostly Ubuntu, do not have such errors and it works there.
Maybe my operating system is too new (Debian testing).

Profile Slicker
Volunteer moderator
Project administrator
Project developer
Project tester
Project scientist
Avatar
Send message
Joined: 11 Jun 09
Posts: 2525
Credit: 740,580,099
RAC: 1
Message 19444 - Posted: 11 May 2014, 22:40:02 UTC - in response to Message 19443.

Thanks for the response.
The strange thing is that others with similar hardware under Linux, mostly Ubuntu, do not have such errors and it works there.
Maybe my operating system is too new (Debian testing).


and "ldd" doesn't show any missing dependancies that the llvm might need? Or, could it be that it delay loads some library that is missing?

Debian seems to be the last distro to ever implement any new code, so it could be that the others already updated their AMD drivers but Debian, even the latest bleeding edge version, hasn't.

fractal
Send message
Joined: 11 Jul 09
Posts: 14
Credit: 1,001,340,489
RAC: 0
Message 21971 - Posted: 30 Jan 2016, 21:57:23 UTC

It has been a couple of years since this was reported. Has anyone figured it out yet? I tried adding one of my ATI machines to the project and am seeing

Stderr output

<core_client_version>7.2.42</core_client_version>
<![CDATA[
<message>
process exited with code 1 (0x1, -255)
</message>
<stderr_txt>
Collatz Conjecture Sieve 1.21 Linux x86_64 for OpenCL
Written by Slicker (Jon Sonntag) of team SETI.USA
Based on the AMD Brook+ kernels by Gipsel of team Planet 3DNow!
Sieve code and OpenCL optimization provided by Sosiris of team BOINC@Taiwan
LLVM ERROR: Cannot select: 0x1fe72c0: i32 = setcc 0x22836f0, 0x2281ce0, 0x1fe71c0 [ORD=14] [ID=50]
0x22836f0: i64 = add 0x2281ce0, 0x22829e0 [ORD=10] [ID=46]
0x2281ce0: i64 = AMDILISD::VEXTRACT 0x23a8ee0, 0x23a85e0 [ORD=9] [ID=36]
0x23a8ee0: v2i64,ch = CopyFromReg 0x267bfb0, 0x23a8de0 [ORD=9] [ID=30]
0x23a8de0: v2i64 = Register %vreg38 [ORD=9] [ID=2]
0x23a85e0: i32 = TargetConstant<1> [ORD=2] [ID=21]
0x22829e0: i64 = add 0x22826e0, 0x22828e0 [ORD=8] [ID=45]
0x22826e0: i64,ch = load 0x267bfb0, 0x22821e0, 0x22822e0<LD4[%arrayidx], zext from i32> [ORD=5] [ID=44]
0x22821e0: i32 = add 0x23a88e0, 0x22820e0 [ORD=3] [ID=43]
0x23a88e0: i32,ch = CopyFromReg 0x267bfb0, 0x23a87e0 [ORD=3] [ID=29]
0x23a87e0: i32 = Register %vreg35 [ORD=3] [ID=1]
0x22820e0: i32 = shl 0x1fe6cc0, 0x2281fe0 [ORD=3] [ID=42]
0x1fe6cc0: i32 = AMDILISD::VEXTRACT 0x23a92e0, 0x23a85e0 [ORD=2] [ID=38]
0x23a92e0: v4i32 = llvm.AMDIL.get.global.id 0x23a91e0 [ORD=1] [ID=32]
0x23a91e0: i32 = TargetConstant<2975> [ORD=1] [ID=4]
0x23a85e0: i32 = TargetConstant<1> [ORD=2] [ID=21]
0x2281fe0: i32 = Constant<2> [ORD=3] [ID=7]
0x22822e0: i32 = undef [ORD=4] [ID=8]
0x22828e0: i64 = shl 0x22825e0, 0x22827e0 [ORD=7] [ID=40]
0x22825e0: i64 = zero_extend 0x23a90e0 [ORD=6] [ID=37]
0x23a90e0: i32,ch = CopyFromReg 0x267bfb0, 0x23a8fe0 [ORD=6] [ID=31]
0x23a8fe0: i32 = Register %vreg39 [ORD=6] [ID=3]
0x22827e0: i32 = Constant<26> [ORD=7] [ID=9]
0x2281ce0: i64 = AMDILISD::VEXTRACT 0x23a8ee0, 0x23a85e0 [ORD=9] [ID=36]
0x23a8ee0: v2i64,ch = CopyFromReg 0x267bfb0, 0x23a8de0 [ORD=9] [ID=30]
0x23a8de0: v2i64 = Register %vreg38 [ORD=9] [ID=2]
0x23a85e0: i32 = TargetConstant<1> [ORD=2] [ID=21]
In function: __OpenCL_kernelSteps_kernel

</stderr_txt>
]]>



Which look remarkably like what the OP reported. Nothing interesting is reported by ldd
:~/BOINC/projects/boinc.thesonntags.com_collatz$ ldd -v collatz_sieve_1.21_x86_64-pc-linux-gnu__opencl_amd_gpu
linux-vdso.so.1 => (0x00007fff28bfe000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fcba90cd000)
libOpenCL.so.1 => /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 (0x00007fcba8ec7000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fcba8bca000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcba880c000)
/lib64/ld-linux-x86-64.so.2 (0x00007fcba9309000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fcba8608000)

Version information:
./collatz_sieve_1.21_x86_64-pc-linux-gnu__opencl_amd_gpu:
ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
libpthread.so.0 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libpthread.so.0
libOpenCL.so.1 (OPENCL_1.0) => /usr/lib/x86_64-linux-gnu/libOpenCL.so.1
libm.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libm.so.6
libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6
libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6
libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6
/lib/x86_64-linux-gnu/libpthread.so.0:
ld-linux-x86-64.so.2 (GLIBC_2.2.5) => /lib64/ld-linux-x86-64.so.2
ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2
libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6
libc.so.6 (GLIBC_2.3.2) => /lib/x86_64-linux-gnu/libc.so.6
libc.so.6 (GLIBC_PRIVATE) => /lib/x86_64-linux-gnu/libc.so.6
libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6
/usr/lib/x86_64-linux-gnu/libOpenCL.so.1:
libdl.so.2 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libdl.so.2
libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6
/lib/x86_64-linux-gnu/libm.so.6:
libc.so.6 (GLIBC_PRIVATE) => /lib/x86_64-linux-gnu/libc.so.6
libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6
/lib/x86_64-linux-gnu/libc.so.6:
ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2
/lib/x86_64-linux-gnu/libdl.so.2:
ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2
libc.so.6 (GLIBC_PRIVATE) => /lib/x86_64-linux-gnu/libc.so.6
libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6

I have had this machine on moo for a while but it is down today so tried to add collatz. I had a similar failure when I tried many months ago. I have it crunching Einstein@home work now.

Profile Slicker
Volunteer moderator
Project administrator
Project developer
Project tester
Project scientist
Avatar
Send message
Joined: 11 Jun 09
Posts: 2525
Credit: 740,580,099
RAC: 1
Message 22007 - Posted: 17 Feb 2016, 17:07:40 UTC

I like how AMD only allows developers to code in OpenCL but then give the errors in assembly. That's pretty useless since we can't control what assembly gets created because it is compiled at runtime (think of it as Java for GPUs that's not quite ready for prime time). I tried compiling the app using an old linux version and AMD SDK but that didn't work since the BOINC client libraries require updated packages and tools in order to compile and those packages aren't available on old linux versions. Its a catch-22.

cyrusNGC_224@P3D
Send message
Joined: 5 May 14
Posts: 7
Credit: 2,375,501,648
RAC: 952,417
Message 22213 - Posted: 5 Apr 2016, 18:51:29 UTC - in response to Message 21971.

It has been a couple of years since this was reported. Has anyone figured it out yet? I tried adding one of my ATI machines to the project and am seeing
It was indeed the old driver and APP SDK.


Post to thread

Message boards : Unix/Linux : LLVM ERROR?


Main page · Your account · Message boards


Copyright © 2018 Jon Sonntag; All rights reserved.