44 Commits
Author SHA1 Message Date
psychocrypt 0f9392f117 OpenCL precompiled code message
change warning when precompiled OpenCL code is not found
2018-03-25 20:09:39 +02:00
1e7911e653 XMR-Stak 2.3.0 RC
Co-authored-by: psychocrypt <psychocryptHPC@gmail.com>
Co-authored-by: fireice-uk <fireice-uk@users.noreply.github.com>
Co-authored-by: Lee Clagett <code@leeclagett.com>
Co-authored-by: curie-kief <curie-kief@users.noreply.github.com>
2018-03-25 13:28:40 +01:00
psychocrypt 702ab56699 fix shadowed variable
A redefinition of a variable in a local scope avoid that the intensity is rounded to a multiple of the work size.
2018-03-13 20:32:07 +01:00
psychocrypt 6beb3f59fe add OpenCL compiler cache
Reduce OpenCL start time by using a self made compiler cache.

- store compiled OpenCL binary
- load OpenCl binary if available
2018-03-03 23:17:23 +01:00
psychocrypt dc4e379345 fix broken memchunk feature
fix double definition of define `MEM_CHUNK`
2018-02-21 22:41:43 +01:00
fireice-ukandGitHub 0ad614836e Merge pull request #1102 from psychocrypt/topic-opencl_1_1
fix compile with OpenCL 1.1
2018-02-21 21:32:10 +00:00
fireice-ukandGitHub aa34bac139 Merge pull request #1101 from psychocrypt/topic-mesaSupport
add Mesa OpenCL support
2018-02-21 21:31:51 +00:00
psychocrypt c975def43e fix compile with OpenCL 1.1
guard error types those are only defined in OpenCL >1.1
2018-02-19 22:49:50 +01:00
psychocrypt cff6b6cbfb add OpenCL compatibility mode
- add new option `comp_mode` to the amd config
- disable `if guards` within opencl kernel if `comp_mode : false`
2018-02-19 22:13:49 +01:00
psychocrypt 7b3929dbef add Mesa OpenCL support
allow usage of Mesa OpenCl
2018-02-19 21:58:17 +01:00
fireice-ukandGitHub f785481bb7 Merge pull request #1087 from psychocrypt/topic-blockedStride3
AMD: option `mem_chunk`and new `strided_index`
2018-02-19 14:10:36 +00:00
psychocrypt 737185ee82 AMD: mem_chunkand new strided_index
- add new option for `strided_index`
- add additional option if `strided_index == 2` to controll the memory chunk with
2018-02-17 20:51:55 +01:00
psychocrypt b0d03b3302 AMD: reduce register usage
reduce usage of registers: based on the suggestion of @enerc77
2018-02-14 21:21:51 +01:00
psychocrypt 1ea14c8d23 fix output of gpu name
fix that the GPU name is printed before the name is querried from OpenCL
2018-01-30 21:33:30 +01:00
psychocrypt ac474caa8b remove usage of rotate
revert the change that the OpenCl function `rotate` is used instead of `SKEIN_ROT`
2018-01-24 22:11:47 +01:00
Grant Galitzandpsychocrypt b9fb744a10 author update 2018-01-24 22:11:47 +01:00
Grant Galitzandpsychocrypt 617af4b301 Optimize Skein
- Eliminate modulus math (It runs slow inside microcode).
- Convert whatever the hell was going on into a rotate op. Like... Someone kinda reinvented the wheel in order to do a simple rotate.
2018-01-24 22:11:47 +01:00
psychocrypt 58db6082a3 differgence in OpenCL code
remove branch differgences in AMD OpenCl code based on #454

a Please enter the commit message for your changes. Lines starting
2017-12-30 21:16:35 +01:00
Unknown e0e8a30099 Make k unsigned. 2017-12-06 16:55:51 +00:00
Unknown af0743b063 Clean up the x-mas tree 2017-12-06 04:23:55 +00:00
fireice-ukandGitHub c6f56b24ec Merge pull request #332 from psychocrypt/topic-tuneAMD
optimize aes round command queue
2017-12-04 15:48:58 +00:00
psychocrypt efc8dc447a optimize aes round command queue
unroll AES round by hand to help the compiler to optimize the command queue
2017-12-03 16:40:42 +01:00
psychocrypt d10d20f113 add AMD scratchpad indexing option
Allow to change the indexing used to address the hash scratchpad memory.

- add option `strided_index` for each gpu
2017-12-02 21:15:35 +01:00
ExceptionallyGreatandGitHub a7c5e97a12 Update gpu.cpp
Fix for AMD GPU detection on MacOS X
On MacOS X the platform is reported as Apple, and the vendor is reported as AMD.
2017-11-21 12:06:20 -08:00
ExceptionallyGreatandGitHub 406cf0fe6e Update gpu.hpp
Fixing the compile error on MacOS X
2017-11-21 11:24:03 -08:00
fireice-ukandGitHub 36079b9311 Merge pull request #138 from psychocrypt/fix-amdMaxWorkSize
fix max work size shown to user
2017-11-18 21:46:01 +00:00
fireice-ukandGitHub 07a6f84810 Merge pull request #137 from psychocrypt/topic-handleOpenClErrors
handle OpenCL errors
2017-11-18 21:40:23 +00:00
psychocrypt 8bf8e8c86d fix max work size shown to user
The max work size shown to the user was the hardware maximum but not take in account thet some kernel spwning 8 times more threads per work group than configured by the user.
2017-11-18 22:22:46 +01:00
psychocrypt e75c3a6225 handle OpenCL errors
- handle opencl errors to avoid unexpected behaviors
- remove code duplicatio nwithin the some method
2017-11-18 22:03:28 +01:00
psychocrypt 7e8475ab30 fix OpenCL compatibility
- enforce that only host side OpenCl 1.2 functions are used if the miner is compiled with `XMR-STAK_COMPILE=generic`
- update documentation
- add CMake option `XMR-STAK_COMPILE` to windows
2017-11-18 21:24:42 +01:00
Unknown cabd46f39f Remove whitespace lines 2017-11-16 13:42:27 +00:00
psychocrypt d0b99bb4c6 remove space indention with tabs
- removed all space indention in `*.hpp` and `*.cpp` files
2017-11-16 12:21:38 +01:00
psychocrypt 12802f12e3 rename xmr to monero
- rename all `xmr` to `monero`
- be insensitive while check for set currency
- add function to compate two strings insensitive
2017-10-27 20:13:19 +02:00
psychocrypt 2346c8be20 add eon support to amd backend
- add compile parameter to support aeon and xmr
- update auto suggestion to handle aeon
2017-10-27 20:12:01 +02:00
psychocrypt 8888a60898 amd: use 64bit target
- remove 32bit target value
- use always 64bit target for amd backend
2017-10-24 23:22:28 +02:00
fireice-uk d3c5911f8e move nicehash check into nonce calc 2017-10-22 13:15:18 +01:00
psychocrypt 630bcffb9f fix assert in AMD backend
fix bug announced in #52

If the miner is compiled in debug mode the assert condition results in a compile time error.
2017-10-20 21:25:08 +02:00
psychocrypt 2c2d05e57a remove early returns
Early returns within a kernel can have unexpected behavior, this strongly depends on the opencl
runtime compiler. To avoid errors all early returns are removed.
There is no negative effect(e.g.performance) if the threads stay alive up to the end of the kernel.

One source for the early return is: http://al-key-opencl.blogspot.de/2014/09/be-careful-not-to-mix-early-return-and.html

This pull request also fix a race condition where all fill the shared memory.
Also a bug introduced with #16 is fixed, because of the early return not was possible that
the last block works with an wrong initilized shared memory (result should be a wrong hash if the result target size is valid).
2017-10-10 21:04:37 +02:00
psychocrypt 611378eb96 avoid possible illegal memory access
Is is possible that the number of results are greater than the result output array,
in this case invalid memory can be access within the device and on the host side.
2017-10-06 21:50:51 +02:00
psychocrypt 65d47dbb31 add assert to validate number of global threads
check that the number of global threads is a multiple of the workgroup size
2017-10-05 22:22:30 +02:00
psychocrypt 0304a7b09e fix invalid kernel call parameter
The number of threads within a kernel must be a multiple of the worksize.
If not it can crash on some systems.
2017-10-05 00:27:37 +02:00
psychocrypt bb3e8840d7 fix windows compile
- string literal can only be 16kbyte
2017-09-30 23:46:08 +02:00
psychocrypt 8babae3156 cleanup includes 2017-09-30 23:46:08 +02:00
psychocrypt cc429b68fa group files
- move source code to `src`
- categorize files and move to group folder
- change upper case class files to lower case
- change C++ header to `*.hpp`
2017-09-30 23:46:08 +02:00