Describe the bug
ethminer cannot see any amd devices
To Reproduce
Steps to reproduce the behavior:
try to run ethminer and it will only run on integrated graphics. ethminer -G --list-devices only shows integrated graphics
Expected behavior
use AMD graphics
Environment (please complete the following information):
Additional context
windows 10 1903
looks like same issue here: https://github.com/ethereum-mining/ethminer/issues/1936
maybe affecting all windows and amd
running this fine on another pc with windows 1903 and v0.17 so that is definitely not the issue - may be AMD driver? running version 18.
"HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors".
Solution for AMD Radeon GPUs not showing up:
Go to C:\Windows\System32\ and search for amdocl64.dll for OpenCL 2.1, x86_64. (There are also amdocl.dll for OpenCL 2.1, x86; amdocl12cl.dll for OpenCL 1.2, x86; and amdocl12cl64.dll for OpenCL 1.2, x86_64.)
Look for the most recent file, right-click, click "Properties," and then select and copy the file's Location (which is the path to its directory). (Mine was in a subdirectory of C:\Windows\System32\DriverStoreFileRepository)
Open regedit, aka the Registry Editor, (e.g. via Windows key+r, and entering regedit)
Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors
Create a new DWORD with the Name being the path from step 2 with \amdocl64.dll at the end (or whichever dll version you need or want), and leave the key's data at 0. My key's Name, for example, is C:\Windows\System32\DriverStoreFileRepository\u0336248.inf_amd64_107cc52c701c83d0\B336252\amdocl64.dll
should now see AMD GPUs!
Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors
Create a new DWORD C:\Windows\System32\DriverStoreFileRepository\u0336248.inf_amd64_107cc52c701c83d0\B336252\amdocl64.dll
should now see AMD GPUs!
Jgonzis you are a champ! I just created an account just to say thanks. After 3 days of uninstalling and reinstalling my Radeon drivers for my new Sapphire RX 5700XT, in my frustrated attempt to figure out why ethminer and kapow miner could not detect my AMD gpu, giving the Error No OpenCL Device Found... your solution to create the registry entry to the amdocl64.dll worked like a charm!!!
I wished I read your post 3 days earlier!
I have a hunch my issue came about when I used the Display Driver Uninstaller software to completely remove all traces of my previous Nvidia graphics card drivers but probably also removed the AMD registry keys as well which pointed to the opencl dll files.
Seems like also creating the registry entries may have also fixed my screen flickering problem that occurs whenever I try overclock the memory... however will need more test on that later to be sure. This AMD Radeon Adrenalin Edition 20.8.2 Driver seems to be working quite stable as well.
Cheers again!
"HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors".
Solution for AMD Radeon GPUs not showing up:
Go to C:\Windows\System32\ and search for amdocl64.dll for OpenCL 2.1, x86_64. (There are also amdocl.dll for OpenCL 2.1, x86; amdocl12cl.dll for OpenCL 1.2, x86; and amdocl12cl64.dll for OpenCL 1.2, x86_64.)
Look for the most recent file, right-click, click "Properties," and then select and copy the file's Location (which is the path to its directory). (Mine was in a subdirectory of C:\Windows\System32\DriverStoreFileRepository)
Open regedit, aka the Registry Editor, (e.g. via Windows key+r, and entering regedit)
Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors
Create a new DWORD with the Name being the path from step 2 with \amdocl64.dll at the end (or whichever dll version you need or want), and leave the key's data at 0. My key's Name, for example, is C:\Windows\System32\DriverStoreFileRepository\u0336248.inf_amd64_107cc52c701c83d0\B336252\amdocl64.dll
should now see AMD GPUs!
I checked in my files but I didn't have an amdocl64.dll file. How should I go about getting it? I just updated drivers today but it still won't show up. Should I just wipe my drivers and reinstall them?
"HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors".
Solution for AMD Radeon GPUs not showing up:
Go to C:\Windows\System32\ and search for amdocl64.dll for OpenCL 2.1, x86_64. (There are also amdocl.dll for OpenCL 2.1, x86; amdocl12cl.dll for OpenCL 1.2, x86; and amdocl12cl64.dll for OpenCL 1.2, x86_64.)
Look for the most recent file, right-click, click "Properties," and then select and copy the file's Location (which is the path to its directory). (Mine was in a subdirectory of C:\Windows\System32\DriverStoreFileRepository)
Open regedit, aka the Registry Editor, (e.g. via Windows key+r, and entering regedit)
Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors
Create a new DWORD with the Name being the path from step 2 with \amdocl64.dll at the end (or whichever dll version you need or want), and leave the key's data at 0. My key's Name, for example, is C:\Windows\System32\DriverStoreFileRepository\u0336248.inf_amd64_107cc52c701c83d0\B336252\amdocl64.dll
should now see AMD GPUs!
This fixed my issue after uninstalling with DDU on an RX 580!
"HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors"
don't have this path, but VULKAN installed. Looks like Ethminer don't see a new registry by AMD
my rig is AMD rx5700xt and driver ver. 20.9.1. Search by registry do nothing because in Ethminer code seek in old algorithm OpenCL? I'm right? or not.
"HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors"
don't have this path, but VULKAN installed. Looks like Ethminer don't see a new registry by AMD
my rig is AMD rx5700xt and driver ver. 20.9.1. Search by registry do nothing because in Ethminer code seek in old algorithm OpenCL? I'm right? or not.
You could try create the pathways in the registry and point them to the correct amdocl64.dll files. You can use notepad and create the entries like my below sample (replacing the : u0359160.inf_amd64_2abe2598d9a3141f\B358802\ with your own file pathway) and then save file as "filename.reg" and then merge it to your registry:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors]
"C:\Windows\System32\DriverStore\FileRepository\u0359160.inf_amd64_2abe2598d9a3141f\B358802\amdocl64.dll"=dword:00000000
"C:\Windows\System32\DriverStore\FileRepository\u0359160.inf_amd64_2abe2598d9a3141f\B358802\amdocl12cl64.dll"=dword:00000000
"C:\Windows\System32\DriverStore\FileRepository\u0359160.inf_amd64_2abe2598d9a3141f\B358802\amdocl12cl.dll"=dword:00000000
"C:\Windows\System32\DriverStore\FileRepository\u0359160.inf_amd64_2abe2598d9a3141f\B358802\amdocl.dll"=dword:00000000
"HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors".
Solution for AMD Radeon GPUs not showing up:
Go to C:\Windows\System32\ and search for amdocl64.dll for OpenCL 2.1, x86_64. (There are also amdocl.dll for OpenCL 2.1, x86; amdocl12cl.dll for OpenCL 1.2, x86; and amdocl12cl64.dll for OpenCL 1.2, x86_64.)
Look for the most recent file, right-click, click "Properties," and then select and copy the file's Location (which is the path to its directory). (Mine was in a subdirectory of C:\Windows\System32\DriverStoreFileRepository)
Open regedit, aka the Registry Editor, (e.g. via Windows key+r, and entering regedit)
Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors
Create a new DWORD with the Name being the path from step 2 with \amdocl64.dll at the end (or whichever dll version you need or want), and leave the key's data at 0. My key's Name, for example, is C:\Windows\System32\DriverStoreFileRepository\u0336248.inf_amd64_107cc52c701c83d0\B336252\amdocl64.dll
should now see AMD GPUs!
How I can upvote your answer multiple times ?!!! You saved me so many times !
Just a quick note: For some strange reason the location of amdocl64.dll and other DLL could change when you install a new version of the AMD drivers :( so what I did:
C:\> ethminer -G --list-devices
..... here is an error message that drivers/device is not found etc.....
C:\> echo %ERRORLEVEL%
in my case the error level was 2. So I fixed the paths in registry to actual location of DLL files and now ethminer working again !!
Thank you !
Hoping someone can help out here... I bought an RX570 8GB card the other day, and have installed it in my miner, running Win10 64bit version 20H2. I am running ethminer v18, and have never had a problem with it as long as I was using NVidia cards.
Long story short:
I installed the AMD card, installed the latest driver pack from AMD's site, and windows was very happy. The card showed up as fully functional without any issues. Ethminer 18 does not see it, however. I found this thread and have tried it, but still no joy from ethminer. I have created the new DWORD as described with the file location. I had to create the Khronos key, as it was not in the HKEY_LOCAL_MACHINE\SOFTWARE\ or \SYSWOW6432 listings.
EDIT!--
The problem was the command-line switch in my batch file.
I can use -U, and the NVidia cards will work, or I can use -C, and the Radeon card works. My problem is that using -X, ethminer just crashes, even if I specify --opencl-platform 1 or just --opencl-platform. Can one of you kind folks give some advice?
Most helpful comment
"HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors".
Solution for AMD Radeon GPUs not showing up:
Go to C:\Windows\System32\ and search for amdocl64.dll for OpenCL 2.1, x86_64. (There are also amdocl.dll for OpenCL 2.1, x86; amdocl12cl.dll for OpenCL 1.2, x86; and amdocl12cl64.dll for OpenCL 1.2, x86_64.)
Look for the most recent file, right-click, click "Properties," and then select and copy the file's Location (which is the path to its directory). (Mine was in a subdirectory of C:\Windows\System32\DriverStoreFileRepository)
Open regedit, aka the Registry Editor, (e.g. via Windows key+r, and entering regedit)
Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors
Create a new DWORD with the Name being the path from step 2 with \amdocl64.dll at the end (or whichever dll version you need or want), and leave the key's data at 0. My key's Name, for example, is C:\Windows\System32\DriverStoreFileRepository\u0336248.inf_amd64_107cc52c701c83d0\B336252\amdocl64.dll
should now see AMD GPUs!