fireice-uk / xmr-stak-amd

Monero AMD miner
GNU General Public License v3.0
193 stars 114 forks source link

Error CL_BUILD_PROGRAM_FAILURE when calling clBuildProgram. #125

Open yiluzhou opened 7 years ago

yiluzhou commented 7 years ago

Could anyone help me? Thank you!

[2017-09-30 22:34:53] : Compiling code and initializing GPUs. This will take a while... [2017-09-30 22:34:55] : Device 0 work size 8 / 1024. [2017-09-30 22:34:55] : Error CL_BUILD_PROGRAM_FAILURE when calling clBuildProgram. Build log:

:16:26: warning: unknown OpenCL extension 'cl_amd_media_ops2' - ignoring #pragma OPENCL EXTENSION cl_amd_media_ops2 : enable ^ In file included from :18: ./opencl/wolf-aes.cl:79:14: warning: implicit declaration of function 'amd_bfe' is invalid in C99 Y.s0 = AES0[BYTE(X.s0, 0)] ^ AES1[BYTE(X.s1, 1)] ^ AES2[BYTE(X.s2, 2)] ^ AES3[BYTE(X.s3, 3)]; ^ ./opencl/wolf-aes.cl:74:21: note: expanded from macro 'BYTE' #define BYTE(x, y) (amd_bfe((x), (y) << 3U, 8U)) ^ In file included from :19: ./opencl/wolf-skein.cl:33:29: warning: implicit declaration of function 'amd_bitalign' is invalid in C99 if(y < 32) return(as_ulong(amd_bitalign(x, x.s10, 32 - y))); ^ ./opencl/wolf-skein.cl:33:20: error: call to 'as_ulong' is ambiguous if(y < 32) return(as_ulong(amd_bitalign(x, x.s10, 32 - y))); ^~~~~~~~ cl_kernel.h:14906:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (long); ^ cl_kernel.h:14907:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (ulong); ^ cl_kernel.h:14908:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (double); ^ cl_kernel.h:15584:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (char8); ^ cl_kernel.h:15585:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (uchar8); ^ cl_kernel.h:15587:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (short3); ^ cl_kernel.h:15589:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (short4); ^ cl_kernel.h:15591:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (ushort3); ^ cl_kernel.h:15593:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (ushort4); ^ cl_kernel.h:15594:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (int2); ^ cl_kernel.h:15595:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (uint2); ^ cl_kernel.h:15596:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (float2); ^ In file included from :19: ./opencl/wolf-skein.cl:34:14: error: call to 'as_ulong' is ambiguous else return(as_ulong(amd_bitalign(x.s10, x, 32 - (y - 32)))); ^~~~~~~~ cl_kernel.h:14906:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (long); ^ cl_kernel.h:14907:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (ulong); ^ cl_kernel.h:14908:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (double); ^ cl_kernel.h:15584:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (char8); ^ cl_kernel.h:15585:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (uchar8); ^ cl_kernel.h:15587:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (short3); ^ cl_kernel.h:15589:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (short4); ^ cl_kernel.h:15591:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (ushort3); ^ cl_kernel.h:15593:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (ushort4); ^ cl_kernel.h:15594:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (int2); ^ cl_kernel.h:15595:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (uint2); ^ cl_kernel.h:15596:24: note: candidate function ulong __OVERLOADABLE__ as_ulong (float2); ^ :328:26: warning: unknown OpenCL extension 'cl_amd_media_ops2' - ignoring #pragma OPENCL EXTENSION cl_amd_media_ops2 : enable ^ Press any key to exit. I'm using vega 56 with AMD blockchain beta driver. Below is my config.txt /* * Number of GPUs that you have in your system. Each GPU will get its own CPU thread. */ "gpu_thread_num" : 1, /* * GPU configuration. You should play around with intensity and worksize as the fastest settings will vary. * index - GPU index number usually starts from 0 * intensity - Number of parallel GPU threads (nothing to do with CPU threads) * worksize - Number of local GPU threads (nothing to do with CPU threads) * affine_to_cpu - This will affine the thread to a CPU. This can make a GPU miner play along nicer with a CPU miner. */ "gpu_threads_conf" : [ { "index" : 0, "intensity" : 2016, "worksize" : 8, "affine_to_cpu" : false }, ], /* * Platform index. This will be 0 unless you have different OpenCL platform - eg. AMD and Intel. */ "platform_index" : 2, /* * TLS Settings * If you need real security, make sure tls_secure_algo is enabled (otherwise MITM attack can downgrade encryption * to trivially breakable stuff like DES and MD5), and verify the server's fingerprint through a trusted channel. * * use_tls - This option will make us connect using Transport Layer Security. * tls_secure_algo - Use only secure algorithms. This will make us quit with an error if we can't negotiate a secure algo. * tls_fingerprint - Server's SHA256 fingerprint. If this string is non-empty then we will check the server's cert against it. */ "use_tls" : false, "tls_secure_algo" : true, "tls_fingerprint" : "", /* * pool_address - Pool address should be in the form "pool.supportxmr.com:3333". Only stratum pools are supported. * wallet_address - Your wallet, or pool login. * pool_password - Can be empty in most cases or "x". */ "pool_address" : "pool.supportxmr.com:3333", "wallet_address" : "4GdoN7NCTi8a5gZug7PrwZNKjvHFmKeV11L6pNJPgj5QNEHsN6eeX3DaAQFwZ1ufD4LYCZKArktt113W7QjWvQ7CWBxfM6Bc875EHuCj4C", "pool_password" : "", /* * Network timeouts. * Because of the way this client is written it doesn't need to constantly talk (keep-alive) to the server to make * sure it is there. We detect a buggy / overloaded server by the call timeout. The default values will be ok for * nearly all cases. If they aren't the pool has most likely overload issues. Low call timeout values are preferable - * long timeouts mean that we waste hashes on potentially stale jobs. Connection report will tell you how long the * server usually takes to process our calls. * * call_timeout - How long should we wait for a response from the server before we assume it is dead and drop the connection. * retry_time - How long should we wait before another connection attempt. * Both values are in seconds. * giveup_limit - Limit how many times we try to reconnect to the pool. Zero means no limit. Note that stak miners * don't mine while the connection is lost, so your computer's power usage goes down to idle. */ "call_timeout" : 10, "retry_time" : 10, "giveup_limit" : 0, /* * Output control. * Since most people are used to miners printing all the time, that's what we do by default too. This is suboptimal * really, since you cannot see errors under pages and pages of text and performance stats. Given that we have internal * performance monitors, there is very little reason to spew out pages of text instead of concise reports. * Press 'h' (hashrate), 'r' (results) or 'c' (connection) to print reports. * * verbose_level - 0 - Don't print anything. * 1 - Print intro, connection event, disconnect event * 2 - All of level 1, and new job (block) event if the difficulty is different from the last job * 3 - All of level 1, and new job (block) event in all cases, result submission event. * 4 - All of level 3, and automatic hashrate report printing */ "verbose_level" : 3, /* * Automatic hashrate report * * h_print_time - How often, in seconds, should we print a hashrate report if verbose_level is set to 4. * This option has no effect if verbose_level is not 4. */ "h_print_time" : 60, /* * Daemon mode * * If you are running the process in the background and you don't need the keyboard reports, set this to true. * This should solve the hashrate problems on some emulated terminals. */ "daemon_mode" : false, /* * Output file * * output_file - This option will log all output to a file. * */ "output_file" : "", /* * Built-in web server * I like checking my hashrate on my phone. Don't you? * Keep in mind that you will need to set up port forwarding on your router if you want to access it from * outside of your home network. Ports lower than 1024 on Linux systems will require root. * * httpd_port - Port we should listen on. Default, 0, will switch off the server. */ "httpd_port" : 0, /* * prefer_ipv4 - IPv6 preference. If the host is available on both IPv4 and IPv6 net, which one should be choose? * This setting will only be needed in 2020's. No need to worry about it now. */ "prefer_ipv4" : true,
psychocrypt commented 7 years ago

Please post the output of clinfo. It looks like you choosed the from platform index.

Am 01.10.2017 4:40 Vorm. schrieb "yiluzhou" notifications@github.com:

Could anyone help me? Thank you!

[2017-09-30 22:34:53] : Compiling code and initializing GPUs. This will take a while... [2017-09-30 22:34:55] : Device 0 work size 8 / 1024. [2017-09-30 22:34:55] : Error CL_BUILD_PROGRAM_FAILURE when calling clBuildProgram. Build log: :16:26: warning: unknown OpenCL extension 'cl_amd_media_ops2' - ignoring

pragma OPENCL EXTENSION cl_amd_media_ops2 : enable

^ In file included from :18: ./opencl/wolf-aes.cl:79:14: warning: implicit declaration of function 'amd_bfe' is invalid in C99 Y.s0 = AES0[BYTE(X.s0, 0)] ^ AES1[BYTE(X.s1, 1)] ^ AES2[BYTE(X.s2, 2)] ^ AES3[BYTE(X.s3, 3)]; ^ ./opencl/wolf-aes.cl:74:21: note: expanded from macro 'BYTE'

define BYTE(x, y) (amd_bfe((x), (y) << 3U, 8U))

^ In file included from :19: ./opencl/wolf-skein.cl:33:29: warning: implicit declaration of function 'amd_bitalign' is invalid in C99 if(y < 32) return(as_ulong(amd_bitalign(x, x.s10, 32 - y))); ^ ./opencl/wolf-skein.cl:33:20: error: call to 'as_ulong' is ambiguous if(y < 32) return(as_ulong(amd_bitalign(x, x.s10, 32 - y))); ^~~~ cl_kernel.h:14906:24: note: candidate function ulong OVERLOADABLE as_ulong (long); ^ cl_kernel.h:14907:24: note: candidate function ulong OVERLOADABLE as_ulong (ulong); ^ cl_kernel.h:14908:24: note: candidate function ulong OVERLOADABLE as_ulong (double); ^ cl_kernel.h:15584:24: note: candidate function ulong OVERLOADABLE as_ulong (char8); ^ cl_kernel.h:15585:24: note: candidate function ulong OVERLOADABLE as_ulong (uchar8); ^ cl_kernel.h:15587:24: note: candidate function ulong OVERLOADABLE as_ulong (short3); ^ cl_kernel.h:15589:24: note: candidate function ulong OVERLOADABLE as_ulong (short4); ^ cl_kernel.h:15591:24: note: candidate function ulong OVERLOADABLE as_ulong (ushort3); ^ cl_kernel.h:15593:24: note: candidate function ulong OVERLOADABLE as_ulong (ushort4); ^ cl_kernel.h:15594:24: note: candidate function ulong OVERLOADABLE as_ulong (int2); ^ cl_kernel.h:15595:24: note: candidate function ulong OVERLOADABLE as_ulong (uint2); ^ cl_kernel.h:15596:24: note: candidate function ulong OVERLOADABLE as_ulong (float2); ^ In file included from :19: ./opencl/wolf-skein.cl:34:14: error: call to 'as_ulong' is ambiguous else return(as_ulong(amd_bitalign(x.s10, x, 32 - (y - 32)))); ^~~~ cl_kernel.h:14906:24: note: candidate function ulong OVERLOADABLE as_ulong (long); ^ cl_kernel.h:14907:24: note: candidate function ulong OVERLOADABLE as_ulong (ulong); ^ cl_kernel.h:14908:24: note: candidate function ulong OVERLOADABLE as_ulong (double); ^ cl_kernel.h:15584:24: note: candidate function ulong OVERLOADABLE as_ulong (char8); ^ cl_kernel.h:15585:24: note: candidate function ulong OVERLOADABLE as_ulong (uchar8); ^ cl_kernel.h:15587:24: note: candidate function ulong OVERLOADABLE as_ulong (short3); ^ cl_kernel.h:15589:24: note: candidate function ulong OVERLOADABLE as_ulong (short4); ^ cl_kernel.h:15591:24: note: candidate function ulong OVERLOADABLE as_ulong (ushort3); ^ cl_kernel.h:15593:24: note: candidate function ulong OVERLOADABLE as_ulong (ushort4); ^ cl_kernel.h:15594:24: note: candidate function ulong OVERLOADABLE as_ulong (int2); ^ cl_kernel.h:15595:24: note: candidate function ulong OVERLOADABLE as_ulong (uint2); ^ cl_kernel.h:15596:24: note: candidate function ulong OVERLOADABLE as_ulong (float2); ^ :328:26: warning: unknown OpenCL extension 'cl_amd_media_ops2' - ignoring

pragma OPENCL EXTENSION cl_amd_media_ops2 : enable

^ Press any key to exit.

I'm using vega 56 with AMD blockchain beta driver. Below is my config.txt

/*

  • Number of GPUs that you have in your system. Each GPU will get its own CPU thread. */ "gpu_thread_num" : 1,

/*

  • GPU configuration. You should play around with intensity and worksize as the fastest settings will vary.

  • index - GPU index number usually starts from 0

  • intensity - Number of parallel GPU threads (nothing to do with CPU threads)

  • worksize - Number of local GPU threads (nothing to do with CPU threads)

  • affine_to_cpu - This will affine the thread to a CPU. This can make a GPU miner play along nicer with a CPU miner. */ "gpu_threads_conf" : [ { "index" : 0, "intensity" : 2016, "worksize" : 8, "affine_to_cpu" : false },

],

/*

  • Platform index. This will be 0 unless you have different OpenCL platform - eg. AMD and Intel. */ "platform_index" : 2,

/*

  • TLS Settings
  • If you need real security, make sure tls_secure_algo is enabled (otherwise MITM attack can downgrade encryption
  • to trivially breakable stuff like DES and MD5), and verify the server's fingerprint through a trusted channel.
  • use_tls - This option will make us connect using Transport Layer Security.
  • tls_secure_algo - Use only secure algorithms. This will make us quit with an error if we can't negotiate a secure algo.
  • tls_fingerprint - Server's SHA256 fingerprint. If this string is non-empty then we will check the server's cert against it. */ "use_tls" : false, "tls_secure_algo" : true, "tls_fingerprint" : "",

/*

  • pool_address - Pool address should be in the form " pool.supportxmr.com:3333". Only stratum pools are supported.
  • wallet_address - Your wallet, or pool login.
  • pool_password - Can be empty in most cases or "x". */ "pool_address" : "pool.supportxmr.com:3333", "wallet_address" : "4GdoN7NCTi8a5gZug7PrwZNKjvHFmK eV11L6pNJPgj5QNEHsN6eeX3DaAQFwZ1ufD4LYCZKArktt113W7QjWvQ7CWB xfM6Bc875EHuCj4C", "pool_password" : "",

/*

  • Network timeouts.

  • Because of the way this client is written it doesn't need to constantly talk (keep-alive) to the server to make

  • sure it is there. We detect a buggy / overloaded server by the call timeout. The default values will be ok for

  • nearly all cases. If they aren't the pool has most likely overload issues. Low call timeout values are preferable -

  • long timeouts mean that we waste hashes on potentially stale jobs. Connection report will tell you how long the

  • server usually takes to process our calls.

  • call_timeout - How long should we wait for a response from the server before we assume it is dead and drop the connection.

  • retry_time - How long should we wait before another connection attempt.

  •       Both values are in seconds.
  • giveup_limit - Limit how many times we try to reconnect to the pool. Zero means no limit. Note that stak miners

  •       don't mine while the connection is lost, so your computer's power usage goes down to idle.

*/ "call_timeout" : 10, "retry_time" : 10, "giveup_limit" : 0,

/*

  • Output control.

  • Since most people are used to miners printing all the time, that's what we do by default too. This is suboptimal

  • really, since you cannot see errors under pages and pages of text and performance stats. Given that we have internal

  • performance monitors, there is very little reason to spew out pages of text instead of concise reports.

  • Press 'h' (hashrate), 'r' (results) or 'c' (connection) to print reports.

  • verbose_level - 0 - Don't print anything.

  •        1 - Print intro, connection event, disconnect event
  •        2 - All of level 1, and new job (block) event if the difficulty is different from the last job
  •        3 - All of level 1, and new job (block) event in all cases, result submission event.
  •        4 - All of level 3, and automatic hashrate report printing

*/ "verbose_level" : 3,

/*

  • Automatic hashrate report
  • h_print_time - How often, in seconds, should we print a hashrate report if verbose_level is set to 4.
  •       This option has no effect if verbose_level is not 4.

*/ "h_print_time" : 60,

/*

  • Daemon mode
  • If you are running the process in the background and you don't need the keyboard reports, set this to true.
  • This should solve the hashrate problems on some emulated terminals. */ "daemon_mode" : false,

/*

  • Output file
  • output_file - This option will log all output to a file.

*/ "output_file" : "",

/*

  • Built-in web server
  • I like checking my hashrate on my phone. Don't you?
  • Keep in mind that you will need to set up port forwarding on your router if you want to access it from
  • outside of your home network. Ports lower than 1024 on Linux systems will require root.
  • httpd_port - Port we should listen on. Default, 0, will switch off the server. */ "httpd_port" : 0,

/*

  • prefer_ipv4 - IPv6 preference. If the host is available on both IPv4 and IPv6 net, which one should be choose?
  •      This setting will only be needed in 2020's. No need to worry about it now.

*/ "prefer_ipv4" : true,

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/fireice-uk/xmr-stak-amd/issues/125, or mute the thread https://github.com/notifications/unsubscribe-auth/AYsxtsM7PxuNKyo199tTAKLX3MxYmH4Nks5snvuvgaJpZM4PpwsA .

yiluzhou commented 7 years ago

image Interestingly, I can't find my Vega 56 in the clinfo.txt. But Windows device manager did show it correctly.

yiluzhou commented 7 years ago

I updated the driver, and updated the clinfo. Thank you! clinfo.txt

robne1982 commented 7 years ago

Could you let me know which driver you updated to? I'm having the same issue but I think I have the latest (no blockchain) driver.

yiluzhou commented 7 years ago

I used this driver, should be the latest version. http://support.amd.com/en-us/kb-articles/Pages/Radeon-Software-Crimson-ReLive-Edition-Beta-for-Blockchain-Compute-Release-Notes.aspx

Volodath commented 7 years ago

What CPU are you on? I've been able to get nVidia + AMD GPUs to play nice together when using

"platform_index" : 1,

on a machine without an iGPU (W10 Ryzen 1700).

I would expect 2 would work if you had an iGPU + nVidia + AMD

ghost commented 7 years ago

I'm having the same problem mining XMR or AEON after updating my AMD drivers from 17.9.2 to 17.9.3. After the miner failed with this error, I reverted to 17.9.2 and still got the error. So I used DDU to uninstall, then re-installed 17.9.2. Same error. I tried the blockchain drivers - same error. This is on Windows 7 with a 280x. I can't get anything to work - tried various miners and configurations, but still have no idea what's happening.

Here's my output log: http://txt.do/d4d3s

and here's the error message: https://i.imgur.com/ZcXt9J9.png

Volodath commented 7 years ago

DDU uninstall was done in safe mode? And this is for a single 280x?

ghost commented 7 years ago

It's a little difficult for me to access the machine and connect it to a monitor in order to boot into safe mode, so no, I did not. However, the driver and card seem to work fine with other algorithms - I've even seen Nicehash use the card since on cryptonight algo via Claymore, and it's happily mining equihash right now.

It is a single 280x on a machine with one other card, a gtx 1060.

If you think I really should try in safe mode I will do it this evening.

ghost commented 7 years ago

Speaking of Cryptonight:

https://i.imgur.com/gj4N81Q.png

The driver and card seem to be fine. Something else got broken when I updated the driver; not the driver or the card.

Volodath commented 7 years ago

It might be worth looking into. Safe Mode is a bit of a bugger for remote management, but I've run into similar scenarios - DDU normal, new driver, then either Nice Hash or the miner direct doesn't work, while the other one doesn't have an issue. A safe mode DDU fixed the issue if my memory serves, although it's been a couple weeks.

On Sat, Oct 7, 2017 at 9:05 AM, destination-moon notifications@github.com wrote:

It's a little difficult for me to access the machine and connect it to a monitor in order to boot into safe mode, so no, I did not. However, the driver and card seem to work fine with other algorithms - I've even seen Nicehash use the card since on cryptonight algo via Claymore, and it's happily mining equihash right now.

It is a single 280x on a machine with one other card, a gtx 1060.

If you think I really should try in safe mode I will do it this evening.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/fireice-uk/xmr-stak-amd/issues/125#issuecomment-334937406, or mute the thread https://github.com/notifications/unsubscribe-auth/Ad3z0jUvuZs0pY2QsHU3UammVdQDXYisks5sp4UygaJpZM4PpwsA .