Skip to content

Commit

Permalink
Merge pull request #2633 from fireice-uk/xmr-stak-rx-dev
Browse files Browse the repository at this point in the history
[RX] release 1.0.3-rx
  • Loading branch information
fireice-uk authored Dec 12, 2019
2 parents 1dee2b6 + 3f8c373 commit a90fcc9
Show file tree
Hide file tree
Showing 33 changed files with 481 additions and 238 deletions.
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
Loading

0 comments on commit a90fcc9

Please sign in to comment.