Skip to content
This repository has been archived by the owner on Oct 28, 2021. It is now read-only.

libethash-cl is supposed to support OpenCL 1.1 but code uses 1.2 specific features #3020

Closed
faenil opened this issue May 22, 2016 · 12 comments
Closed

Comments

@faenil
Copy link

faenil commented May 22, 2016

According to https://github.com/ethereum/libethereum/blob/develop/libethash-cl/ethash_cl_miner.cpp#L354
the libethash-cl is supposed to support OpenCL 1.1, although the .cl code uses the "static" keyword multiple times.

The static keyword has been introduced in OpenCL 1.2, so it looks to me like it is not 1.1 compatible (anymore?) :)

I hit this blocker while trying to get ethminer working on Mesa+libclc + radeon OSS driver, which is supposedly an OpenCL 1.1 compatible setup :)
It would be great if you could make the code 1.1 compatible so that users will be able to mine on OSS drivers :) (on a limited number of GPU architectures)

@faenil faenil changed the title Ethminer is supposed to support OpenCL 1.1 but code uses 1.2 specific features libethash-cl is supposed to support OpenCL 1.1 but code uses 1.2 specific features May 22, 2016
@bobsummerwill
Copy link
Contributor

Hey @faenil,

If you have changes to suggest to meet this need, please do submit PRs. I doubt there would be any objection from anybody. I personally know close to nothing about OpenCL, and wouldn't know what changes would be needed :-)

You could also look at http://github.com/Genoil/cpp-ethereum, to see if Genoil's code is better on this score.

@faenil
Copy link
Author

faenil commented May 23, 2016

Hi @bobsummerwill :)

Unfortunately I'm in the same situation as you :/

I got the self-explanatory "OpenCL 1.1 does not support the static keyword" and went from there, with a bit of research...

@bobsummerwill
Copy link
Contributor

You going to have a go at this, do you think, @faenil? Feeling itchy? :-)

@faenil
Copy link
Author

faenil commented May 23, 2016

I tried, but got to a point where I get no errors but ethminer gets stuck at the point of starting the computation (i.e. after the first round of 0H/s). No idea where to go from there and I'm not willing to invest another weekend on it :)
It could be a problem anywhere in: Mesa, radeon driver, libclc, llvm, ethminer, libethereum...

@bobsummerwill
Copy link
Contributor

Hey @Genoil,
Do you know of anybody working towards "Mesa+libclc + radeon OSS driver" ? Best wishes!

@bobsummerwill
Copy link
Contributor

Just going to cut-and-paste some further chat between @faenil and myself on IRC:

I spend the weekend trying to get it to run on latest mesa/libclc/llvm...but no luck, OpenCL1.1 is not enough
oh here's Bob :D

there could be multiple bugs at any point in that stack, as the OSS world is still OpenCL1.1 WIP, so...not really worth spending more time on
given that I have no experience with any of those pieces
s/spend/spent

alterego - So it's not mining properly still?

yes, with closed blobs, which I finally managed to get to work without X (as AMD dropped support for X 1.18 so Ubuntu dropped fglrx support)
but I had already tried 2-3 times before and failed, so I spent last weekend trying to get the OSS drivers to work with ethminer

tldr: 1) patch kernel module that does not otherwise build on 4.x (thank God someone had already done most of the job...I think it was https://bluehatrecord.wordpress.com/2016/03/25/installing-the-proprietary-amd-crimson-driver-on-fedora-23-with-linux-kernel-4-4-6-300/ even though last time I tried that post wasn't out yet, I used a previous one from the same guy in March), 2) uninstall any OpenCL-related Mesa package/file, as otherwise the system would always try to run Mesa, 3) build the AMD packages using --NoXServer (the web is full of people saying you can't do OpenCL without X on AMD, and then today I found this flag...), 4) copy amdpcsdb.default as suggested by http://www2.ati.com/relnotes/amd-catalyst-graphics-driver-installer-notes-for-linux-operating-systems.pdf

bob - Oh, I see. So you have to disable OpenCL right now?

I have to uninstall any OpenCL-Mesa relate pkg, so that it uses AMD -OpenCL

bob - Right. And that one closed source one does support OpenCL 1.2, so you don't see the issue there?

M-bobsummerwill1: correct, it supports OpenCL2.0
M-bobsummerwill1: I already had everything working on Ubuntu 15.10 since March, but I wanted 16.04, because of its features. And 16.04 ships X 1.18, which is incompatible with fglrx AMD driver. So I managed to run fglrx with no X interactions, so it doesn't crash, and I can use fglrx only for OpenCL, on 16.04
if you install fglrx as AMD ships it, your system won't boot anymore. You need the steps I posted above to get something booting (using a secondary non-AMD card, in my case the server mobo iGPU)
I'm so happy :)

  • faenil (IRC) goes to bed with a smile
    let's hope they don't fry the GPUs, since without X I can't check the temperatures :P

@lvella
Copy link
Contributor

lvella commented Jul 14, 2016

Hey. I just stumbled (again) on this issue. Last time I tried to mine ether on Mesa + Free Drivers, they had a memory limitation that allowed at most 1GB to allocated on the GPU, and I couldn't make it work. Now it seems that this particular limitation is gone, and if I remember correctly, to fix the static keyword issue was a simple matter of adding the following line to the top of the OpenCL source file:

#pragma OPENCL EXTENSION cl_clang_storage_class_specifiers : enable

That enables the OpenCL 1.1 extension that allows for the use of the static keyword. Intel from here. I am just now recompiling ethereum-cpp with the aforementioned change to the file cpp-ethereum/libethash-cl/ethash_cl_miner_kernel.cl. I'll report back here if it works.

UPDATE: I got the following... am I minig?

miner  02:01:25.677|ethminer  Mining on PoWhash #ce9a50cd… : 0 H/s = 0 hashes / 0.5 s
miner  02:01:26.815|ethminer  Mining on PoWhash #ce9a50cd… : 461115 H/s = 524288 hashes / 1.137 s
DAG  02:01:27.659|ethminer  Generating DAG file. Progress: 4 %
miner  02:01:27.971|ethminer  Mining on PoWhash #ce9a50cd… : 453929 H/s = 524288 hashes / 1.155 s
miner  02:01:29.115|ethminer  Mining on PoWhash #ce9a50cd… : 458293 H/s = 524288 hashes / 1.144 s
miner  02:01:30.260|ethminer  Mining on PoWhash #ce9a50cd… : 686840 H/s = 786432 hashes / 1.145 s
miner  02:01:31.420|ethminer  Mining on PoWhash #ce9a50cd… : 452362 H/s = 524288 hashes / 1.159 s
miner  02:01:32.589|ethminer  Mining on PoWhash #ce9a50cd… : 448492 H/s = 524288 hashes / 1.169 s
DAG  02:01:33.657|ethminer  Generating DAG file. Progress: 5 %
miner  02:01:33.755|ethminer  Mining on PoWhash #ce9a50cd… : 675048 H/s = 786432 hashes / 1.165 s
miner  02:01:34.968|ethminer  Mining on PoWhash #ce9a50cd… : 432224 H/s = 524288 hashes / 1.213 s
miner  02:01:36.116|ethminer  Mining on PoWhash #ce9a50cd… : 685642 H/s = 786432 hashes / 1.147 s
miner  02:01:37.279|ethminer  Mining on PoWhash #ce9a50cd… : 450806 H/s = 524288 hashes / 1.163 s
miner  02:01:38.439|ethminer  Mining on PoWhash #ce9a50cd… : 452362 H/s = 524288 hashes / 1.159 s
miner  02:01:39.589|ethminer  Mining on PoWhash #ce9a50cd… : 684449 H/s = 786432 hashes / 1.149 s
DAG  02:01:39.986|ethminer  Generating DAG file. Progress: 6 %
miner  02:01:40.751|ethminer  Mining on PoWhash #ce9a50cd… : 451194 H/s = 524288 hashes / 1.162 s
miner  02:01:41.900|ethminer  Mining on PoWhash #ce9a50cd… : 456696 H/s = 524288 hashes / 1.148 s
miner  02:01:43.043|ethminer  Mining on PoWhash #ce9a50cd… : 688644 H/s = 786432 hashes / 1.142 s
miner  02:01:44.181|ethminer  Mining on PoWhash #ce9a50cd… : 460710 H/s = 524288 hashes / 1.138 s
miner  02:01:45.327|ethminer  Mining on PoWhash #ce9a50cd… : 457893 H/s = 524288 hashes / 1.145 s
DAG  02:01:46.034|ethminer  Generating DAG file. Progress: 7 %
miner  02:01:46.468|ethminer  Mining on PoWhash #ce9a50cd… : 459498 H/s = 524288 hashes / 1.141 s
miner  02:01:47.608|ethminer  Mining on PoWhash #ce9a50cd… : 689852 H/s = 786432 hashes / 1.14 s

@faenil
Copy link
Author

faenil commented Jul 14, 2016

Looks like you are :) with a lot of calm, but you are :D

@pelelademadera
Copy link

for me, not working...

@darkicekeel
Copy link

my actual OS config
OPERATING SYSTEM: Gentoo 2.3
Kernel: 4.9.16-gentoo (x86_64)
Desktop: KDE Frameworks 5
Display Server: X Server 1.19.2
Compiler: GCC 4.9.4 + Clang 5.0.0 + LLVM 5.0.0svn

cpp-ethereum-master/ethminer output:

OPENCL:Found suitable OpenCL device [AMD TAHITI (DRM 3.8.0 / 4.9.16-gentoo, LLVM 4.0.0)] with 4164202496 bytes of GPU memory
ℹ 13:10:22|ethminer Connecting to stratum server coinotron.com:3344
ℹ 13:10:22|stratum Connected to stratum server coinotron.com : 3344
ℹ 13:10:22|stratum Starting farm
ℹ 13:10:22|stratum Subscribed to stratum server
ℹ 13:10:22|stratum Received new job #403
ℹ 13:10:22|openclminer0 set work; seed: #647f6619, target: #000000010000
ℹ 13:10:22|openclminer0 Initialising miner...
ℹ 13:10:22|stratum Authorized worker darkice.eth002
m 13:10:24|ethminer Mining on PoWhash #fb8e1a48 : 0.00MH/s [A0+0:R0+0:F0]
OPENCL:Using platform: Clover
OPENCL:Using device: AMD TAHITI (DRM 3.8.0 / 4.9.16-gentoo, LLVM 4.0.0)(OpenCL 1.1 Mesa 17.1.1)
OPENCL:input.cl:97:1: error: OpenCL version 1.1 does not support the 'static' storage class specifier
input.cl:114:1: error: OpenCL version 1.1 does not support the 'static' storage class specifier
input.cl:123:1: error: OpenCL version 1.1 does not support the 'static' storage class specifier
input.cl:209:1: error: OpenCL version 1.1 does not support the 'static' storage class specifier
input.cl:240:1: error: OpenCL version 1.1 does not support the 'static' storage class specifier
input.cl:245:1: error: OpenCL version 1.1 does not support the 'static' storage class specifier
input.cl:250:1: error: OpenCL version 1.1 does not support the 'static' storage class specifier
input.cl:380:1: error: OpenCL version 1.1 does not support the 'static' storage class specifier

m 13:10:26|ethminer Mining on PoWhash #fb8e1a48 : 0.00MH/s [A0+0:R0+0:F0]
[...]

@chfast
Copy link
Collaborator

chfast commented Jun 6, 2017

I think you should report it in https://github.com/ethereum-mining/ethminer. Here there is not ethminer any more.

@ghost
Copy link

ghost commented Jul 5, 2017

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

6 participants