Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RX] release 1.0.3-rx #2633

Merged
merged 20 commits into from
Dec 12, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
9a61429
fix multihash
psychocrypt Dec 8, 2019
606d89e
optimize hash calculation
psychocrypt Dec 8, 2019
d640396
add ubuntu OpenCL dep
nuke-web3 Dec 9, 2019
fe842dd
fix windows huge page support
psychocrypt Dec 9, 2019
aa821c5
Merge pull request #2622 from NukeManDan/patch-2
psychocrypt Dec 9, 2019
0b3e762
update travis tests
psychocrypt Dec 9, 2019
b7586c5
Merge pull request #2621 from psychocrypt/rx-fix-multiHash
fireice-uk Dec 10, 2019
af08f28
Merge pull request #2623 from psychocrypt/rx-topic-optimizeRXHashRound
fireice-uk Dec 10, 2019
cd41b70
Merge pull request #2624 from psychocrypt/rx-fix-windowsHugePageSupport
fireice-uk Dec 10, 2019
5048764
Merge pull request #2625 from psychocrypt/rx-topic-updateTravis
fireice-uk Dec 10, 2019
ec9371f
add arqma support
psychocrypt Dec 11, 2019
3120adb
Linux 1GiB page support
psychocrypt Dec 11, 2019
d8f11d8
Merge pull request #2628 from psychocrypt/rx-topic-arqmaSupport
fireice-uk Dec 12, 2019
4f5e4cd
Merge pull request #2627 from psychocrypt/rx-topic-1gibPageSupport
fireice-uk Dec 12, 2019
f827ab3
fix outdated documentation
psychocrypt Dec 12, 2019
03725c3
version update to 1.0.3-rx
psychocrypt Dec 12, 2019
22f9502
Merge pull request #2630 from psychocrypt/rx-fix-outdatedDocu
fireice-uk Dec 12, 2019
b479177
Merge pull request #2631 from psychocrypt/rx-topic-versionUpdateTo1.0…
fireice-uk Dec 12, 2019
8af95f8
add arqma to readme
psychocrypt Dec 12, 2019
3f8c373
Merge pull request #2632 from psychocrypt/rx-topic-addArqmaToDocu
fireice-uk Dec 12, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
58 changes: 38 additions & 20 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
dist: trusty

osx_image: xcode8.3

sudo: false

language: cpp
Expand All @@ -25,22 +21,24 @@ env:

matrix:
include:
# - os: linux
# compiler: gcc
# addons:
# apt:
# sources:
# - ubuntu-toolchain-r-test
# packages:
# - *default_packages
# - gcc-5
# - g++-5
# env:
# - CMAKE_CXX_COMPILER=g++-5
# - CMAKE_C_COMPILER=gcc-5
# - XMRSTAK_CMAKE_FLAGS="-DCUDA_ARCH=30 -DOpenCL_ENABLE=OFF"
#
- os: linux
dist: bionic
compiler: gcc
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- *default_packages
- gcc-5
- g++-5
env:
- CMAKE_CXX_COMPILER=g++-5
- CMAKE_C_COMPILER=gcc-5
- XMRSTAK_CMAKE_FLAGS="-DCUDA_ARCH=30 -DOpenCL_ENABLE=OFF"

- os: linux
dist: bionic
compiler: gcc
addons:
apt:
Expand All @@ -57,6 +55,7 @@ matrix:

# test with disabled HWLOC, MICROHTTPD, OpenSSL and no accelerators
- os: linux
dist: bionic
compiler: gcc
addons:
apt:
Expand All @@ -72,6 +71,7 @@ matrix:
- XMRSTAK_CMAKE_FLAGS="-DCUDA_ENABLE=OFF -DOpenCL_ENABLE=OFF -DHWLOC_ENABLE=OFF -DOpenSSL_ENABLE=OFF -DMICROHTTPD_ENABLE=OFF"

- os: linux
dist: bionic
compiler: gcc
addons:
apt:
Expand All @@ -85,8 +85,25 @@ matrix:
- CMAKE_CXX_COMPILER=g++-7
- CMAKE_C_COMPILER=gcc-7
- XMRSTAK_CMAKE_FLAGS="-DCUDA_ENABLE=OFF -DOpenCL_ENABLE=OFF"

- os: linux
dist: bionic
compiler: gcc
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- *default_packages
- gcc-8
- g++-8
env:
- CMAKE_CXX_COMPILER=g++-8
- CMAKE_C_COMPILER=gcc-8
- XMRSTAK_CMAKE_FLAGS="-DCUDA_ENABLE=OFF -DOpenCL_ENABLE=OFF"

- os: osx
osx_image: xcode8.3
compiler: gcc
env:
- XMRSTAK_CMAKE_FLAGS="-DCUDA_ENABLE=OFF -DOpenCL_ENABLE=OFF"
Expand All @@ -109,7 +126,7 @@ install:
travis_retry wget https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda_9.0.176_384.81_linux-run &&
ls -la &&
chmod u+x *-run &&
./cuda_9.0.176_384.81_linux-run --silent --toolkit --toolkitpath=$CUDA_ROOT &&
./cuda_9.0.176_384.81_linux-run --silent --toolkit --override --toolkitpath=$CUDA_ROOT &&
rm -rf ./cuda_9.0.176_384.81_linux-run $CUDA_ROOT/{samples,jre,doc,share} &&
cd -;
fi
Expand All @@ -120,6 +137,7 @@ script:
brew install hwloc;
cmake -DMICROHTTPD_ENABLE=OFF -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl ${XMRSTAK_CMAKE_FLAGS} .;
else
export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:$CUDA_ROOT;
cmake -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} ${XMRSTAK_CMAKE_FLAGS} .;
fi;
- make VERBOSE=1 install
Expand Down
10 changes: 5 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -472,11 +472,11 @@ file(GLOB BACKEND_CPP
"xmrstak/misc/*.cpp"
"xmrstak/net/*.cpp")

add_library(xmr-stak-backend
add_library(xmr-stak-rx-backend
STATIC
${BACKEND_CPP}
)
target_link_libraries(xmr-stak-backend xmr-stak-randomx ${CMAKE_DL_LIBS} ${RANDOMX_LIBRARIES} ${MHTD} ${LIBS})
target_link_libraries(xmr-stak-rx-backend xmr-stak-randomx ${CMAKE_DL_LIBS} ${RANDOMX_LIBRARIES} ${MHTD} ${LIBS})

# compile CUDA backend
if(CUDA_FOUND)
Expand Down Expand Up @@ -507,7 +507,7 @@ if(CUDA_FOUND)
set(CUDA_LIBRARIES ${CUDA_LIBRARIES})

target_link_libraries(xmrstakrx_cuda_backend ${CUDA_LIBRARIES})
target_link_libraries(xmrstakrx_cuda_backend xmr-stak-backend)
target_link_libraries(xmrstakrx_cuda_backend xmr-stak-rx-backend)
endif()

# compile AMD backend
Expand All @@ -520,7 +520,7 @@ if(OpenCL_FOUND)
${OPENCLSRCFILES}
)
target_link_libraries(xmrstakrx_opencl_backend ${OpenCL_LIBRARY} )
target_link_libraries(xmrstakrx_opencl_backend xmr-stak-backend)
target_link_libraries(xmrstakrx_opencl_backend xmr-stak-rx-backend)
endif()

# compile final binary
Expand All @@ -536,7 +536,7 @@ endif()
set(EXECUTABLE_OUTPUT_PATH "bin" CACHE STRING "Path to place executables relative to ${CMAKE_INSTALL_PREFIX}")
set(LIBRARY_OUTPUT_PATH "bin" CACHE STRING "Path to place libraries relative to ${CMAKE_INSTALL_PREFIX}")

target_link_libraries(xmr-stak-rx ${MHTD} ${LIBS} xmr-stak-backend)
target_link_libraries(xmr-stak-rx ${MHTD} ${LIBS} xmr-stak-rx-backend)

################################################################################
# Install
Expand Down
5 changes: 3 additions & 2 deletions doc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,16 +35,17 @@ Xmr-Stak-RX supports various variants of RandomX algorithm. Use one of the follo

| Coin name | Coin alias in config | POW type |
| --- | --- | --- |
| Monero | `monero` | RandomX |
| ArQmA | `Arqma` | RandomARQ |
| Loki Network | `loki` | RandomXL |
| Monero | `monero` | RandomX |
| Wownero (Monero's testnet) | `wownero` | RandomWOW |


## Donations
[<img src="/doc/_img/fee.png">](#)

## Get Miner
Please note that code is developed on the [dev branch](#), if you want to check out the latest updates, before they are merged on [main branch](#), please refer there. Master branch will always point to a version that we consider stable, so you can download the code by simply typing `git clone https://github.com/fireice-uk/xmr-stak-rx.git`
Please note that code is developed on the [dev branch](#), if you want to check out the latest updates, before they are merged on [main branch](#), please refer there. Master branch will always point to a version that we consider stable, so you can download the code by simply typing `git clone https://github.com/fireice-uk/xmr-stak.git -b xmr-stak-rx`

Also you can find the latest releases, changelog and precompiled binaries on GitHub under [releases](#) section.

Expand Down
5 changes: 2 additions & 3 deletions doc/compile/compile_Linux.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Compile **xmr-stak** for Linux
# Compile **xmr-stak-rx** for Linux

## Install Dependencies

Expand All @@ -23,7 +23,7 @@ ROCm is not supporting old GPUs please check if your GPU is supported https://ro
### GNU Compiler
```
# Ubuntu / Debian
sudo apt install libmicrohttpd-dev libssl-dev cmake build-essential libhwloc-dev
sudo apt install libmicrohttpd-dev libssl-dev cmake build-essential libhwloc-dev ocl-icd-opencl-dev
git clone https://github.com/fireice-uk/xmr-stak.git -b xmr-stak-rx
mkdir xmr-stak/build
cd xmr-stak/build
Expand Down Expand Up @@ -101,7 +101,6 @@ ROCm is not supporting old GPUs please check if your GPU is supported https://ro
```

- g++ version 5.1 or higher is required for full C++11 support.
If you want to compile the binary without installing libraries / compiler or just compile binary for some other distribution, please check the [build_xmr-stak_docker.sh script](scripts/build_xmr-stak_docker/build_xmr-stak_docker.sh).

- Some newer gcc versions are not supported by CUDA (e.g. Ubuntu 17.10). It will require installing gcc 5 but you can avoid changing defaults.

Expand Down
10 changes: 5 additions & 5 deletions doc/compile/compile_Windows.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Compile **xmr-stak** for Windows
# Compile **xmr-stak-x** for Windows

## Install Dependencies

Expand Down Expand Up @@ -81,17 +81,17 @@ Do not follow old information that you need the AMD APP SDK. AMD has removed the
## Compile

- Download xmr-stak [Source Code.zip](https://github.com/fireice-uk/xmr-stak/releases) and save to a location in your home folder (C:\Users\USERNAME\)
- Extract `Source Code.zip` (e.g. to `C:\Users\USERNAME\xmr-stak-<version>`)
- Extract `Source Code.zip` (e.g. to `C:\Users\USERNAME\xmr-stak-rx-<version>`)
- Open a command line (Windows key + r) and enter `cmd`
- Go to extracted source code directory (e.g. `cd C:\Users\USERNAME\xmr-stak-<version>`)
- Go to extracted source code directory (e.g. `cd C:\Users\USERNAME\xmr-stak-rx-<version>`)
- Execute the following commands (NOTE: path to Visual Studio Community 2017 can be different)
```
# Execute next line only if compiling for Cuda 9.x and using Visual Studio 2017 >= 15.5 (released 12/04/17)
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 -vcvars_ver=14.11

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsMSBuildCmd.bat"
```
- Sometimes Windows will change the directory to `C:\Users\USERNAME\source\` instead of `C:\Users\USERNAME\xmr-stak-<version>\`. If that's the case execute `cd C:\Users\USERNAME\xmr-stak-<version>` followed by:
- Sometimes Windows will change the directory to `C:\Users\USERNAME\source\` instead of `C:\Users\USERNAME\xmr-stak-rx-<version>\`. If that's the case execute `cd C:\Users\USERNAME\xmr-stak-rx-<version>` followed by:
```
mkdir build

Expand All @@ -102,7 +102,7 @@ Do not follow old information that you need the AMD APP SDK. AMD has removed the

### CMake

- See [build options](https://github.com/fireice-uk/xmr-stak/blob/master/doc/compile.md#build-system) to enable or disable dependencies.
- See [build options](https://github.com/fireice-uk/xmr-stak/blob/xmr-stak-rx/doc/compile/compile.md#build-system) to enable or disable dependencies.
- For CUDA 8* execute: `cmake -G "Visual Studio 15 2017 Win64" -T v140,host=x64 ..`
- For CUDA 9* **and/or** AMD GPUs, CPU execute: `cmake -G "Visual Studio 15 2017 Win64" -T v141,host=x64 ..`
- Then execute
Expand Down
2 changes: 1 addition & 1 deletion doc/compile/compile_macOS.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Compile **xmr-stak-rc** for macOS
# Compile **xmr-stak-rx** for macOS

## Dependencies

Expand Down
2 changes: 1 addition & 1 deletion doc/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ Pool has banned your IP, This can be caused by several reasons:
### 7. MEMORY ALLOC FAILED: mmap failed
On Linux you will need to configure large page support and increase your memlock limit (`ulimit -l`).

Never put settings directly into `/etc/sysctl.conf` or `/etc/security/limits.conf` as those are system defaults and can be replaced in upgrades, and custom settings in that file are deprecated in all distros since at least wheezy/trusty (has been illegal in RedHat based distros for longer than that), and will be even more deprecated with systemd (it no longer even reads sysctl.conf, ONLY sysctl.d files, for example - there is a link to the old `/etc/sysctl.conf` for backward compatibility but that can go away at any time). Also adding to `/etc/rc.local` is extra incorrect, systemd does not even use that file anymore (once the sysvinit compatibility layer is gone, rc.local will no longer work). To check current settings, run `/sbin/sysctl vm.nr_hugepages ; ulimit -l` as whatever user you will run xmr-stak as (example shows bad/low sample defaults):
Never put settings directly into `/etc/sysctl.conf` or `/etc/security/limits.conf` as those are system defaults and can be replaced in upgrades, and custom settings in that file are deprecated in all distros since at least wheezy/trusty (has been illegal in RedHat based distros for longer than that), and will be even more deprecated with systemd (it no longer even reads sysctl.conf, ONLY sysctl.d files, for example - there is a link to the old `/etc/sysctl.conf` for backward compatibility but that can go away at any time). Also adding to `/etc/rc.local` is extra incorrect, systemd does not even use that file anymore (once the sysvinit compatibility layer is gone, rc.local will no longer work). To check current settings, run `/sbin/sysctl vm.nr_hugepages ; ulimit -l` as whatever user you will run xmr-stak-rx as (example shows bad/low sample defaults):

$ /sbin/sysctl vm.nr_hugepages ; ulimit -l vm.nr_hugepages = 0 16

Expand Down
23 changes: 23 additions & 0 deletions doc/tuning.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

## Content Overview
* [Fast Startup](#fast-startup)
* [Huge Page Support](#huge-page-support)
* [Benchmark](#benchmark)
* [Windows](#windows)
* [Managing GPUs](#managing-GPUs)
Expand All @@ -23,6 +24,28 @@
## Fast Startup
You can disable the miner self test performed on each miner start by adding the command line option `--noTest`

## Huge Page Support

In Linux you can enable 2 MiB huge pages with the following command.

```
sudo sysctl -w vm.nr_hugepages=1300
```

In linux there is also the possibility to use 1 GiB pages for the dataset, this can be enabled with.

```
sudo sh -c ' echo 3 >/sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages'
# check if the pages are enabled
cat /sys/kernel/mm/hugepages/hugepages-1048576kB/free_hugepages
```

If the last must return `3` else the OS was not able to allocate 1 GiB pages.
Reasons for this can be that the you have to less main memory, you should have at least 8 GiB main memory.
If the system already runs for a while it could be your memory is already fragmented, a restart could help.
xmr-stak-rx is always using gigabyte pages when available, if this has a negative effect on your hashrate set the number
of gigabyte pages back to zero.

## Benchmark
You can benchmark the miner in two ways:
- Edit `config.txt` and set `verbose_level` to 4 and `h_print_time` to 30 and start the miner. You will see hash report each 30 seconds.
Expand Down
16 changes: 0 additions & 16 deletions doc/usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,22 +61,6 @@ Some NVIDIA GPUs can reach better performance with this backend.
xmr-stak-rx --openCLVendor NVIDIA --noNVIDIA
```

## Docker image usage

You can run the Docker image the following way:

```
docker run --rm -it -u $(id -u):$(id -g) --name fireice-uk/xmr-stak-rx -v "$PWD":/mnt xmr-stak-rx
docker stop xmr-stak-rx
docker run --rm -it -u $(id -u):$(id -g) --name fireice-uk/xmr-stak-rx -v "$PWD":/mnt xmr-stak-rx --config config.txt
```

Debug the docker image by getting inside:

```
docker run --entrypoint=/bin/bash --rm -it -u $(id -u):$(id -g) --name fireice-uk/xmr-stak-rx -v "$PWD":/mnt xmr-stak-rx
```

## HTML and JSON API report configuration

To configure the reports shown on the [README](../README.md) side you need to edit the httpd_port variable. Then enable wifi on your phone and navigate to [miner ip address]:[httpd_port] in your phone browser. If you want to use the data in scripts, you can get the JSON version of the data at url [miner ip address]:[httpd_port]/api.json