Closed faenil closed 7 years ago
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.
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...
You going to have a go at this, do you think, @faenil? Feeling itchy? :-)
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...
Hey @Genoil, Do you know of anybody working towards "Mesa+libclc + radeon OSS driver" ? Best wishes!
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 :)
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:
`
`
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
Looks like you are :) with a lot of calm, but you are :D
for me, not working...
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: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] [...]
I think you should report it in https://github.com/ethereum-mining/ethminer. Here there is not ethminer any more.
@darkicekeel See https://github.com/ethereum-mining/ethminer/issues/59
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)