Monero Mining With xmr-stak-amd on Windows 10

Written by CC Freak on December 5, 2017
  • 33
  •  
  • 1
  •  
  •  
  •  
  •  
  •  
    34
    Shares

Edit: This article is now outdated. Please use this article instead: Guide To Mining Monero On Windows 10.

Mining Monero with xmr-stak-amd is pretty straightforward. It is one of the best miners as it is very customizable. This guide will walk you through setting up xmr-stak-amd for your AMD video card or cards.

Getting Started

Download the latest individual xmr-stak-amd release here: https://github.com/fireice-uk/xmr-stak-amd/releases/download/v1.1.0-1.4.0/xmr-stak-amd-notls-win64.zip or if you need SSL support: https://github.com/fireice-uk/xmr-stak-amd/releases/download/v1.1.0-1.4.0/xmr-stak-amd-win64.zip

Once downloaded, unzip into a directory such as C:\Mining . It helps to create a folder that stores all of your mining files for easy reference.

Once it is downloaded and extracted you will only need to edit one file, the config.txt file.

Editing Config.txt

Editing config.txt is relatively simple but you will need to know a bit about your system. Each video card will have different settings. The best way to find these settings is by trial and error or by researching your video card. A good place to start is https://www.reddit.com/r/MoneroMining/. Simply type your video card model into the search bar, make sure you only search MoneroMining and then start your research.

I will show you the basics of editing the config.txt and show you how to mine with more than 1 AMD card using xmr-stak-amd.

Pool Settings

Before we start messing with the video card settings lets make sure your pool settings are correct. Your default config.txt will have the following:

"pool_address" : "pool.supportxmr.com:3333",
"wallet_address" : "",
"pool_password" : "",

Your pool is up to you. I personally recommend https://supportxmr.com/#/home.

If you go with SupportXMR your configuration will look like this:

"pool_address" : "pool.supportxmr.com:5555",
"wallet_address" : "46dpA9N1KDE9yERcSGASXPUyA4ga1GrPq5sDXqwwjQL2dAmf5kvgpNQUWdvyT1r55pfwfvuBn2h7YQPhZFYdWtjWUVUTobh",
"pool_password" : "x",

Making sure to replace your address with yours above.

Once that is edited we can move over to the juice of getting your card mining.

Mining Settings

Lets look at the default settings here:

/* 
 * Number of GPUs that you have in your system. Each GPU will get its own CPU thread.
 */
"gpu_thread_num" : 6,
/*
 * 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" : 1000, "worksize" : 8, "affine_to_cpu" : false },
	{ "index" : 1, "intensity" : 1000, "worksize" : 8, "affine_to_cpu" : false },
	{ "index" : 2, "intensity" : 1000, "worksize" : 8, "affine_to_cpu" : false },
	{ "index" : 3, "intensity" : 1000, "worksize" : 8, "affine_to_cpu" : false },
	{ "index" : 4, "intensity" : 1000, "worksize" : 8, "affine_to_cpu" : false },
	{ "index" : 5, "intensity" : 1000, "worksize" : 8, "affine_to_cpu" : false },
],

The first setting, gpu_thread_num, is simple. Its how many threads you want to run. As you can see by default it is set to 6. This means that there has to be exactly six total indexes. You can see in the example above that there are 6 indexes, starting at 0 and going to 5.

The default example given above is for a mining rig with 6 video cards. Each video card will have an “intensity” of 1000, a “worksize” of 8 and will not be assigned to a cpu core (“affine_to_cpu”).

Lets look at an example where you only have 1 AMD video card you wish to mine. You would simply change the above to:

/* 
 * 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" : 1000, "worksize" : 8, "affine_to_cpu" : false },
],

Pretty straight forward. Since we only have one video card, we are going to run 1 gpu thread and one index with a value of 0, since it is the first video card.

If you have two video cards:

/* 
 * Number of GPUs that you have in your system. Each GPU will get its own CPU thread.
 */
"gpu_thread_num" : 2,
/*
 * 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" : 1000, "worksize" : 8, "affine_to_cpu" : false },
        { "index" : 1, "intensity" : 1000, "worksize" : 8, "affine_to_cpu" : false },
],

and three video cards:

/* 
 * Number of GPUs that you have in your system. Each GPU will get its own CPU thread.
 */
"gpu_thread_num" : 3,
/*
 * 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" : 1000, "worksize" : 8, "affine_to_cpu" : false },
        { "index" : 1, "intensity" : 1000, "worksize" : 8, "affine_to_cpu" : false },
        { "index" : 2, "intensity" : 1000, "worksize" : 8, "affine_to_cpu" : false },
],

and so on. Hopefully you get the idea now.

The last setting you should pay attention to, should you have errors, is this:

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

If you receive any errors that prevent you from starting, simply try changing this from 0 to 1.

You should now be on your way to mining Monero with your AMD card. Keep tuning your intensity to find the sweet spot.

Advanced: Intensity tuning with two threads

It is possible to run 2 GPU Threads per card. You will need to halve the intensity. I have had great results increasing hash rate this way. In the above examples, for one video card, instead of this:

/* 
 * 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" : 1000, "worksize" : 8, "affine_to_cpu" : false },
],

which uses one GPU thread for one video card, you can use the following:

/* 
 * Number of GPUs that you have in your system. Each GPU will get its own CPU thread.
 */
"gpu_thread_num" : 2,
/*
 * 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" : 500, "worksize" : 8, "affine_to_cpu" : false },
	{ "index" : 0, "intensity" : 500, "worksize" : 8, "affine_to_cpu" : false },
],

Note that we have two index entries but they both use the same index of 0. This means that two GPU threads will be created and they will both run on one video card. Each GPU Thread will have an intensity of 500 instead of 1000.

As you can see, there is a lot of tuning that can be done to get the best out of your system. So google around, look at /r/moneromining and see what you can do to get the most out of your system.


  • 33
  •  
  • 1
  •  
  •  
  •  
  •  
  •  
    34
    Shares

Topic tags:

Subscribe
Notify of
guest
9 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments