{ "cells": [ { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import os\n", "import gzip\n", "import pickle\n", "import re\n", "import copy\n", "from tqdm import tqdm\n", "import time" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "hardware_instances = pd.read_csv('hardware_instances.csv') # columns: date,hardware\n", "\n", "# # keep only values near the end of 2021\n", "# hardware_instances = hardware_instances[hardware_instances[\"date\"] > \"2020-07-01\"]\n", "# hardware_instances = hardware_instances[hardware_instances[\"date\"] < \"2020-11-01\"]\n", "\n", "# unique_values = hardware_instances[\"hardware\"].value_counts()\n", "# pairs = []\n", "# for i in range(0, len(unique_values)):\n", "# # print(unique_values.index[i], unique_values[i])\n", "# pairs.append((unique_values.index[i], unique_values[i]))\n", "\n", "# pairs = sorted(pairs, key=lambda x: x[0], reverse=False)\n", "# for pair in pairs:\n", "# # print(pair)\n", "# print(pair[0])\n", "\n", "pd.set_option('display.max_rows', None)\n", "\n", "# keep only values near the end of 2021\n", "hardware_instances = hardware_instances[hardware_instances[\"date\"] > \"2020-07-01\"]\n", "hardware_instances = hardware_instances[hardware_instances[\"date\"] < \"2020-12-01\"]\n", "hardware_instances[[\"date\", \"hardware\"]].to_csv(\"hardware_instances_2020_all.csv\", index=False)\n", "\n", "from hardware_mapping import map_hardware_to_table\n", "hardware_instances = hardware_instances.assign(hardware_mapped = hardware_instances[\"hardware\"].apply(map_hardware_to_table))\n", "# hardware_instances" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "hardware\n", "psu 257\n", "hashboard 132\n", "fan 109\n", "fans 101\n", "miner 92\n", "miners 83\n", "hashboards 77\n", "sd card 68\n", "asics 68\n", "hash boards 59\n", "router 56\n", "asic 51\n", "hash board 51\n", "power supply 51\n", "antminer 46\n", "l3+ 36\n", "antminers 33\n", "ethernet cable 31\n", "apw3++ 27\n", "raspberry pi 26\n", "pc 24\n", "cables 22\n", "asic miners 21\n", "heatsinks 21\n", "chips 19\n", "laptop 19\n", "s15 18\n", "pcb 18\n", "boards 17\n", "asic miner 17\n", "psus 16\n", "chip 16\n", "temp sensor 16\n", "cgminer 16\n", "cable 16\n", "ribbon cable 15\n", "data cable 15\n", "asic chips 15\n", "avalon 14\n", "exhaust fan 14\n", "hashing board 14\n", "board 13\n", "pdu 13\n", "r4 13\n", "power supplies 13\n", "gpu 12\n", "modem 12\n", "heat sinks 11\n", "multimeter 11\n", "bitmain psu 11\n", "ribbon cables 11\n", "gpus 10\n", "transformer 10\n", "cpu 10\n", "avalon 851 10\n", "hashing boards 10\n", "antminer s15 9\n", "t1 9\n", "heatsink 8\n", "asic boards 8\n", "l3 8\n", "t15 8\n", "cards 8\n", "exhaust fans 7\n", "power cables 7\n", "d3 7\n", "capacitors 7\n", "voltmeter 6\n", "heat sink 6\n", "psu's 6\n", "r606 6\n", "power cable 6\n", "solar panels 6\n", "pic 6\n", "gpu rig 6\n", "network cable 6\n", "cooling fan 6\n", "gpu rigs 6\n", "bitmain apw3++ 5\n", "innosilicon 5\n", "whatsminer 5\n", "test fixture 5\n", "asic chip 5\n", "data cables 5\n", "2pac 5\n", "bfgminer 5\n", "internet connection 5\n", "intake fan 5\n", "avalon miners 5\n", "auc3 5\n", "mining rig 5\n", "a851 5\n", "antminer t15 5\n", "rpi3 5\n", "a10 5\n", "pdus 5\n", "micro sd card 5\n", "firmware 5\n", "gekkoscience compac f 4\n", "ac 4\n", "Name: count, dtype: int64" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hardware_instances = pd.read_csv('hardware_instances.csv') # columns: date,hardware\n", "hardware_instances = hardware_instances[hardware_instances[\"date\"] > \"2018-01-01\"]\n", "hardware_instances = hardware_instances.assign(hardware_mapped = hardware_instances[\"hardware\"].apply(map_hardware_to_table))\n", "\n", "# find most common unique values that were mapped to \"unknown\"\n", "unique_values = hardware_instances[hardware_instances[\"hardware_mapped\"] == \"unknown\"][\"hardware\"].value_counts()\n", "unique_values[:100]" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "hardware\n", "control board 207\n", "computer 194\n", "controller 141\n", "controller board 72\n", "computers 52\n", "controllers 18\n", "control boards 16\n", "vps 15\n", "antminer s17 14\n", "4gb ram 13\n", "Name: count, dtype: int64" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hardware_instances = pd.read_csv('hardware_instances.csv') # columns: date,hardware\n", "hardware_instances = hardware_instances.assign(hardware_mapped = hardware_instances[\"hardware\"].apply(lambda x: str(x).strip()).apply(map_hardware_to_table))\n", "\n", "# print things that are \"not found\"\n", "unique_values = hardware_instances[hardware_instances[\"hardware_mapped\"] == \"not found\"][\"hardware\"].value_counts()\n", "unique_values[:10]" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2010-09-09 12:59:39 gtx460 5.630427875025024\n", "User:\n", "In the given Bitcoin forum thread, pay close attention to the language used when mentioning hardware pieces. Look for explicit statements indicating ownership or hypothetical discussions.\n", "\n", "```thread\n", "Date: 2011-01\n", "Topic: A slightly more open approach to bitcoin on the GPU\n", "### Original post:\n", "Honestly, I can't understand all the secrecy on the CUDA / OpenCL / Whatever GPU enabled versions of bitcoin. Sure, it's nice to take advantage of the extra edge you get if you want to build an efficient mining farm, but really, what's up with everyone on this regard?So, not really having the time to do it, I decided to take my first cup of CUDA (as all I have as hw to test is a macbook pro with a nvidia inside), and I'm attaching the initial version here. Yes, the source, for you to do as you please! Just remember the reason you got it in the first place, which was that someone didn't take it and hide! Anyways, it's *really* crude, has static compile instructions on the makefile, only for osx and with the cuda dev sdk in the default place, compiled for x86_64. But I'm sure you can quickly tweak it to compile for your system, though...The code that runs in the GPU is a 1:1 copy of the Cryptopp source, only slightly tweaked. There's a lot of room for improvement, I have some 20 hours total of working with CUDA so I don't have the faintest idea of what optimizations I could achieve, but at least in the memory layout there's a lot to do. I compared the resulting hashes with Cryptopp a\n", "\n", "### Reply 1:\n", "I have a feeling this is going to be very controversial.\n", "\n", "### Reply 2:\n", "I think the big secret thing with cuda or opencl clients is that they give one person a decisive advantage over everyone else running only a cpu. Add that with the fact that most users don't know cuda programing (me included) makes for a situation where a cuda client can be valuable to the author... For example artforz has made his own cuda client that has not been released. It has been rumored that he makes up 25% of the generation power on the network. It give him a huge advantage and one I think artforz would like to keep. The down side to opening up a GPU client to the masses is that it completely kills CPU based generation unless you have a lot of cpus.... On my windows client I went from 4500Khash to 29000khashes.I will give this a try here in a few days or so on my 8800gtx hackintosh and see how it runs. What GPU does your mac have in it? I have no cuda or MAC OS X programming knowledge but, I have done some c in BSD and will have a go at the code to see what I might be able to do. Thank you for your efforts!\n", "\n", "### Reply 3:\n", "I don't think that the bias should be towards the ones with better printers having more money The Bitcoins are a whole ecosystem, and mining for them is a small part of it, I guess. If lots of people start running GPU based mining, then the advantage that was owned by artforz and a handful of others will blend into more hands and pockets, thus making the mining less efficient for everyone. But mining is part statistics, part luck. I recently generated 3 blocks, running a machine that has been mining non stop for over a month. These 3 blocks are the only blocks it ever generated.Of course artforz would like to keep the advantage. Heck, I could use this to my advantage too, but I'd rather take the open source business approach and say \"here, take it, my treat\" but expect you to do the same for me and others (yes, trust is the base for this), and if you like it, I'll take whatever you feel fair. You want me to do something specific? need suport? Well, priority and special attention comes with a cost.I may never get as many coins as artforz created, but I hope I did my share on helping to spread them I've got a GT330M, really basic entry level thing. And you are most welcome.\n", "\n", "### Reply 4:\n", "Nice! I've wanted to get into FPGA's too, and bitcoin seems very fitting, but unfortunately time doesn't stretch that much.BTW, the code I posted is slightly broken If the cuda thread generates a valid block it will die, for where it reads in main.cpp: if (DEBUG || hash <= hashTarget) { pblock->nNonce = keep+i; break; }it shoudl read if (DEBUG || hash <= hashTarget) { pblock->nNonce = tmp.block.nNonce = keep+i; break; }\n", "\n", "### Reply 5:\n", "I am also working on a version of the BitCoin CUDA Client and will do all that I can to help this project. It will be opensourced as well, for the same reasons nelisky stated. I will test this first version out on my GTX 460(borrowing from a friend ) as soon as I can. Also, the pseudocode I've been writing up should be quite a bit faster than this currently is because it is incorporating FPGA styling and CUDA programming.I should have something up of my code up after the weekend.\n", "\n", "### Reply 6:\n", "Nelisky, thank you for your work. I think that it's in the network's best interest that the fastest possible methods of generating blocks are freely available (see tcatm's 4-way SSE2).\n", "\n", "### Reply 7:\n", "I have one question: Do you need to have a good CPU to take full advantage of your GPU when generating bitcoins? I ask because I want to create a bitcoin mining rig with just pure GPU power. I don't want to spen\n", "\n", "```\n", "\n", "\n", "\n", "Reply with the hardware names, all in the same line, separated by commas. Then, on a new line, list \"True\" or \"False\" for each piece of hardware to indicate ownership status. True if the mention suggests concrete ownership by any user, and False if the hardware is discussed in a hypothetical or speculative way.\n", "\n", "Assistant:\n", "Sure! Here is the requested output, with the correct ownership status for each piece of hardware:\n", "Hardware names: macbook pro, 8800gtx, GT330M, GTX 460\n", "Hardware ownership: True, True, True, True\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "2010-10-06 20:25:17 4350 5.539076098792776\n", "User:\n", "In the given Bitcoin forum thread, pay close attention to the language used when mentioning hardware pieces. Look for explicit statements indicating ownership or hypothetical discussions.\n", "\n", "```thread\n", "Date: 2018-01\n", "Topic: OpenCL miner for the masses\n", "### Original post:\n", "Amazing solution! Not good for the masses (it's better to integrate the miner in the binary) but great for experimentation and multiple machine mining. I'll be sure to have a go at this when I get a sec, kudos for putting this out.\n", "\n", "### Reply 1:\n", "It is interesting to see how you've split mining and wallet+P2P into separate pieces. Nice and modular.I'll be interested to see feedback from people, if they actually generate coins from this.\n", "\n", "### Reply 2:\n", "nelisky: Integrating CUDA/OpenCL seems to have portability issues. Also, my goal is actually to convince satoshi to patch the mainline. The patch must be crystal clear for this to happen.jgarzik: I tested this against vanilla client to be sure blocks are actually accepted. On ATI 4350 it makes ~5800 khash/s.Forgot to mention that original client generation could be used in parallel.\n", "\n", "### Reply 3:\n", "Yes, that is one of my biggest concerns. I don't have enough exposure to assert in multiple platforms / hw. And I have failed to provide a simple click and use distributable, as of yet, but as interest increases and more developers tackle this I'm sure one of us will provide a clean implementation that is production quality for satoshi.\n", "\n", "### Reply 4:\n", "davidonpda: you need1. Some OpenCL capable hardware and driver.2. python 2.6.63. PyOpenCL. This could be tricky, follow the official installation -h or --help for some options, by default looks for bitcoin RPC at 127.0.0.1:8332Hope this helps\n", "\n", "### Reply 5:\n", "Will opencl client works on ati hd3850?\n", "\n", "### Reply 6:\n", "ATI HD3850 has no OpenCL support.4xxx and 5xxx have.\n", "\n", "### Reply 7:\n", "Due to popular demand bitcoin PyOpenCL miner is available now at are some minor fixes. Be sure to experiment with globalThreads to achieve better performance/dekstop lag ratio.\n", "\n", "### Reply 8:\n", "Hmm, that's weird. Shouldn't the speed be much bigger, like 10-fold or 100-fold faster at least ?I mean there was this guy somewhere on the BTC forum who claimed that he's getting 983 Mhash/s (983 000 khash/sec) with just 3 radeons 5870 or something.\n", "\n", "### Reply 9:\n", "Yeah, I'm struggling with how OpenCL compiles kernels and the impact of the work size on performance. It is quite counter intuitive coming from CUDA, as the unrolling of loops and functions actually makes performance worse, as the kernel needs more space. I don't have any numbers for that ATI, but the 4350 seems to be a LOT less performant than the 5870, so it might not be that low.Once I have hardware to test this for real, I'll compare my approach to this one, so we can learn from each other.\n", "\n", "### Reply 10:\n", "There is information on wikipedia about the performance of various AMD/ATI and Nvidia chips.4350 is cited at 92 GFLOPS. 5870 has 2720 GFLOPS. tcatm has 3x5870s. Due to it's superior architecture 5870 is capable of more than just the difference in GFLOPS. For example I get 6 Mhash/s on 4350 and 137 Mhash/s on 5770 (ratio of 1/22) even if the ratio of GFLOPS for the relevant cards is 92 to 1360 (1/14).\n", "\n", "### Reply 11:\n", "don't have an ATI card, but even after reading those performance-infos i still can't believe that on a hd4350 makes sense to me, i get around 5-6.000 on a 8600gt, both listed around 100GFlops.my gtx260 gets ~40Mhash, 874GFlopsi'd expect a hd5870 makes at least 3times as much, cuz it's listed with 2700GFlops,which would result in around 400Mhash for 3 of those cards, that's what i would expect, so where's those extra 600Mhash coming from? it's superior architecture?if so, my next card will be ati again.\n", "\n", "### Reply 12:\n", "There's a lot more than GFlops to this equation. Memory bandwidth, for one, will be very important.\n", "\n", "### Reply 13:\n", "of course, but stilli'd like to know if that's a usual expectation on ati cards compared to nvidia,no single-hd5870-users around that want to share their hash-count?i'm gonna buy a new card sooner or later anyway and i don't mind if it says ati or nvidia on it,both will surely run my game/s.but if one of them is x times better crunching blocks and besides that, prolly cheaper too,i already know what my next favourite brand is.\n", "\n", "### Reply 14:\n", "Sorry, just realized i broke it with latest changes, please update. (It won't submit to RPC properly)\n", "\n", "### Reply 15:\n", "Added auto adjustment to keep desktop responsive. Also, doing hash rate calculation at user defined interval.\n", "\n", "### Reply 16:\n", "i'm getting when trying to run it\n", "\n", "### Reply 17:\n", "Slightly improved kernel (~10%). Fixed a problem with rotate() and Nvidia OpenCL. I won't upload anymore to the forum, please use the repo.\n", "\n", "### Reply 18:\n", "Do i need to use a special version of graphics drivers to get the OpenCL client working ?\n", "\n", "### Reply 19:\n", "I'm in the same position. All I need is the patch compiled into the client and I should be ready to go :/\n", "\n", "### Reply 20:\n", "Any chance of a 64 bit windows build?\n", "\n", "### Reply 21:\n", "now it segfaults: \n", "\n", "### Reply 22:\n", "Sorry, forgot about that. You should install json-rpc. See at u\n", "\n", "```\n", "\n", "\n", "\n", "Reply with the hardware names, all in the same line, separated by commas. Then, on a new line, list \"True\" or \"False\" for each piece of hardware to indicate ownership status. True if the mention suggests concrete ownership by any user, and False if the hardware is discussed in a hypothetical or speculative way.\n", "\n", "Assistant:\n", "Sure! Here is the requested output, with the correct ownership status for each piece of hardware:\n", "Hardware names: ATI 4350, ATI HD3850, 4xxx, 5xxx, radeons 5870, 5770, 8600gt, gtx260, hd5870\n", "Hardware ownership: True, False, False, False, True, True, True, True, False\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "2010-10-06 20:25:17 5770 6.287824115666779\n", "User:\n", "In the given Bitcoin forum thread, pay close attention to the language used when mentioning hardware pieces. Look for explicit statements indicating ownership or hypothetical discussions.\n", "\n", "```thread\n", "Date: 2018-01\n", "Topic: OpenCL miner for the masses\n", "### Original post:\n", "Amazing solution! Not good for the masses (it's better to integrate the miner in the binary) but great for experimentation and multiple machine mining. I'll be sure to have a go at this when I get a sec, kudos for putting this out.\n", "\n", "### Reply 1:\n", "It is interesting to see how you've split mining and wallet+P2P into separate pieces. Nice and modular.I'll be interested to see feedback from people, if they actually generate coins from this.\n", "\n", "### Reply 2:\n", "nelisky: Integrating CUDA/OpenCL seems to have portability issues. Also, my goal is actually to convince satoshi to patch the mainline. The patch must be crystal clear for this to happen.jgarzik: I tested this against vanilla client to be sure blocks are actually accepted. On ATI 4350 it makes ~5800 khash/s.Forgot to mention that original client generation could be used in parallel.\n", "\n", "### Reply 3:\n", "Yes, that is one of my biggest concerns. I don't have enough exposure to assert in multiple platforms / hw. And I have failed to provide a simple click and use distributable, as of yet, but as interest increases and more developers tackle this I'm sure one of us will provide a clean implementation that is production quality for satoshi.\n", "\n", "### Reply 4:\n", "davidonpda: you need1. Some OpenCL capable hardware and driver.2. python 2.6.63. PyOpenCL. This could be tricky, follow the official installation -h or --help for some options, by default looks for bitcoin RPC at 127.0.0.1:8332Hope this helps\n", "\n", "### Reply 5:\n", "Will opencl client works on ati hd3850?\n", "\n", "### Reply 6:\n", "ATI HD3850 has no OpenCL support.4xxx and 5xxx have.\n", "\n", "### Reply 7:\n", "Due to popular demand bitcoin PyOpenCL miner is available now at are some minor fixes. Be sure to experiment with globalThreads to achieve better performance/dekstop lag ratio.\n", "\n", "### Reply 8:\n", "Hmm, that's weird. Shouldn't the speed be much bigger, like 10-fold or 100-fold faster at least ?I mean there was this guy somewhere on the BTC forum who claimed that he's getting 983 Mhash/s (983 000 khash/sec) with just 3 radeons 5870 or something.\n", "\n", "### Reply 9:\n", "Yeah, I'm struggling with how OpenCL compiles kernels and the impact of the work size on performance. It is quite counter intuitive coming from CUDA, as the unrolling of loops and functions actually makes performance worse, as the kernel needs more space. I don't have any numbers for that ATI, but the 4350 seems to be a LOT less performant than the 5870, so it might not be that low.Once I have hardware to test this for real, I'll compare my approach to this one, so we can learn from each other.\n", "\n", "### Reply 10:\n", "There is information on wikipedia about the performance of various AMD/ATI and Nvidia chips.4350 is cited at 92 GFLOPS. 5870 has 2720 GFLOPS. tcatm has 3x5870s. Due to it's superior architecture 5870 is capable of more than just the difference in GFLOPS. For example I get 6 Mhash/s on 4350 and 137 Mhash/s on 5770 (ratio of 1/22) even if the ratio of GFLOPS for the relevant cards is 92 to 1360 (1/14).\n", "\n", "### Reply 11:\n", "don't have an ATI card, but even after reading those performance-infos i still can't believe that on a hd4350 makes sense to me, i get around 5-6.000 on a 8600gt, both listed around 100GFlops.my gtx260 gets ~40Mhash, 874GFlopsi'd expect a hd5870 makes at least 3times as much, cuz it's listed with 2700GFlops,which would result in around 400Mhash for 3 of those cards, that's what i would expect, so where's those extra 600Mhash coming from? it's superior architecture?if so, my next card will be ati again.\n", "\n", "### Reply 12:\n", "There's a lot more than GFlops to this equation. Memory bandwidth, for one, will be very important.\n", "\n", "### Reply 13:\n", "of course, but stilli'd like to know if that's a usual expectation on ati cards compared to nvidia,no single-hd5870-users around that want to share their hash-count?i'm gonna buy a new card sooner or later anyway and i don't mind if it says ati or nvidia on it,both will surely run my game/s.but if one of them is x times better crunching blocks and besides that, prolly cheaper too,i already know what my next favourite brand is.\n", "\n", "### Reply 14:\n", "Sorry, just realized i broke it with latest changes, please update. (It won't submit to RPC properly)\n", "\n", "### Reply 15:\n", "Added auto adjustment to keep desktop responsive. Also, doing hash rate calculation at user defined interval.\n", "\n", "### Reply 16:\n", "i'm getting when trying to run it\n", "\n", "### Reply 17:\n", "Slightly improved kernel (~10%). Fixed a problem with rotate() and Nvidia OpenCL. I won't upload anymore to the forum, please use the repo.\n", "\n", "### Reply 18:\n", "Do i need to use a special version of graphics drivers to get the OpenCL client working ?\n", "\n", "### Reply 19:\n", "I'm in the same position. All I need is the patch compiled into the client and I should be ready to go :/\n", "\n", "### Reply 20:\n", "Any chance of a 64 bit windows build?\n", "\n", "### Reply 21:\n", "now it segfaults: \n", "\n", "### Reply 22:\n", "Sorry, forgot about that. You should install json-rpc. See at u\n", "\n", "```\n", "\n", "\n", "\n", "Reply with the hardware names, all in the same line, separated by commas. Then, on a new line, list \"True\" or \"False\" for each piece of hardware to indicate ownership status. True if the mention suggests concrete ownership by any user, and False if the hardware is discussed in a hypothetical or speculative way.\n", "\n", "Assistant:\n", "Sure! Here is the requested output, with the correct ownership status for each piece of hardware:\n", "Hardware names: ATI 4350, ATI HD3850, 4xxx, 5xxx, radeons 5870, 5770, 8600gt, gtx260, hd5870\n", "Hardware ownership: True, False, False, False, True, True, True, True, False\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "2010-10-06 20:25:17 5870 6.2801228963023075\n", "User:\n", "In the given Bitcoin forum thread, pay close attention to the language used when mentioning hardware pieces. Look for explicit statements indicating ownership or hypothetical discussions.\n", "\n", "```thread\n", "Date: 2018-01\n", "Topic: OpenCL miner for the masses\n", "### Original post:\n", "Amazing solution! Not good for the masses (it's better to integrate the miner in the binary) but great for experimentation and multiple machine mining. I'll be sure to have a go at this when I get a sec, kudos for putting this out.\n", "\n", "### Reply 1:\n", "It is interesting to see how you've split mining and wallet+P2P into separate pieces. Nice and modular.I'll be interested to see feedback from people, if they actually generate coins from this.\n", "\n", "### Reply 2:\n", "nelisky: Integrating CUDA/OpenCL seems to have portability issues. Also, my goal is actually to convince satoshi to patch the mainline. The patch must be crystal clear for this to happen.jgarzik: I tested this against vanilla client to be sure blocks are actually accepted. On ATI 4350 it makes ~5800 khash/s.Forgot to mention that original client generation could be used in parallel.\n", "\n", "### Reply 3:\n", "Yes, that is one of my biggest concerns. I don't have enough exposure to assert in multiple platforms / hw. And I have failed to provide a simple click and use distributable, as of yet, but as interest increases and more developers tackle this I'm sure one of us will provide a clean implementation that is production quality for satoshi.\n", "\n", "### Reply 4:\n", "davidonpda: you need1. Some OpenCL capable hardware and driver.2. python 2.6.63. PyOpenCL. This could be tricky, follow the official installation -h or --help for some options, by default looks for bitcoin RPC at 127.0.0.1:8332Hope this helps\n", "\n", "### Reply 5:\n", "Will opencl client works on ati hd3850?\n", "\n", "### Reply 6:\n", "ATI HD3850 has no OpenCL support.4xxx and 5xxx have.\n", "\n", "### Reply 7:\n", "Due to popular demand bitcoin PyOpenCL miner is available now at are some minor fixes. Be sure to experiment with globalThreads to achieve better performance/dekstop lag ratio.\n", "\n", "### Reply 8:\n", "Hmm, that's weird. Shouldn't the speed be much bigger, like 10-fold or 100-fold faster at least ?I mean there was this guy somewhere on the BTC forum who claimed that he's getting 983 Mhash/s (983 000 khash/sec) with just 3 radeons 5870 or something.\n", "\n", "### Reply 9:\n", "Yeah, I'm struggling with how OpenCL compiles kernels and the impact of the work size on performance. It is quite counter intuitive coming from CUDA, as the unrolling of loops and functions actually makes performance worse, as the kernel needs more space. I don't have any numbers for that ATI, but the 4350 seems to be a LOT less performant than the 5870, so it might not be that low.Once I have hardware to test this for real, I'll compare my approach to this one, so we can learn from each other.\n", "\n", "### Reply 10:\n", "There is information on wikipedia about the performance of various AMD/ATI and Nvidia chips.4350 is cited at 92 GFLOPS. 5870 has 2720 GFLOPS. tcatm has 3x5870s. Due to it's superior architecture 5870 is capable of more than just the difference in GFLOPS. For example I get 6 Mhash/s on 4350 and 137 Mhash/s on 5770 (ratio of 1/22) even if the ratio of GFLOPS for the relevant cards is 92 to 1360 (1/14).\n", "\n", "### Reply 11:\n", "don't have an ATI card, but even after reading those performance-infos i still can't believe that on a hd4350 makes sense to me, i get around 5-6.000 on a 8600gt, both listed around 100GFlops.my gtx260 gets ~40Mhash, 874GFlopsi'd expect a hd5870 makes at least 3times as much, cuz it's listed with 2700GFlops,which would result in around 400Mhash for 3 of those cards, that's what i would expect, so where's those extra 600Mhash coming from? it's superior architecture?if so, my next card will be ati again.\n", "\n", "### Reply 12:\n", "There's a lot more than GFlops to this equation. Memory bandwidth, for one, will be very important.\n", "\n", "### Reply 13:\n", "of course, but stilli'd like to know if that's a usual expectation on ati cards compared to nvidia,no single-hd5870-users around that want to share their hash-count?i'm gonna buy a new card sooner or later anyway and i don't mind if it says ati or nvidia on it,both will surely run my game/s.but if one of them is x times better crunching blocks and besides that, prolly cheaper too,i already know what my next favourite brand is.\n", "\n", "### Reply 14:\n", "Sorry, just realized i broke it with latest changes, please update. (It won't submit to RPC properly)\n", "\n", "### Reply 15:\n", "Added auto adjustment to keep desktop responsive. Also, doing hash rate calculation at user defined interval.\n", "\n", "### Reply 16:\n", "i'm getting when trying to run it\n", "\n", "### Reply 17:\n", "Slightly improved kernel (~10%). Fixed a problem with rotate() and Nvidia OpenCL. I won't upload anymore to the forum, please use the repo.\n", "\n", "### Reply 18:\n", "Do i need to use a special version of graphics drivers to get the OpenCL client working ?\n", "\n", "### Reply 19:\n", "I'm in the same position. All I need is the patch compiled into the client and I should be ready to go :/\n", "\n", "### Reply 20:\n", "Any chance of a 64 bit windows build?\n", "\n", "### Reply 21:\n", "now it segfaults: \n", "\n", "### Reply 22:\n", "Sorry, forgot about that. You should install json-rpc. See at u\n", "\n", "```\n", "\n", "\n", "\n", "Reply with the hardware names, all in the same line, separated by commas. Then, on a new line, list \"True\" or \"False\" for each piece of hardware to indicate ownership status. True if the mention suggests concrete ownership by any user, and False if the hardware is discussed in a hypothetical or speculative way.\n", "\n", "Assistant:\n", "Sure! Here is the requested output, with the correct ownership status for each piece of hardware:\n", "Hardware names: ATI 4350, ATI HD3850, 4xxx, 5xxx, radeons 5870, 5770, 8600gt, gtx260, hd5870\n", "Hardware ownership: True, False, False, False, True, True, True, True, False\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "2010-10-06 20:25:17 gtx260 5.3222192947339195\n", "User:\n", "In the given Bitcoin forum thread, pay close attention to the language used when mentioning hardware pieces. Look for explicit statements indicating ownership or hypothetical discussions.\n", "\n", "```thread\n", "Date: 2018-01\n", "Topic: OpenCL miner for the masses\n", "### Original post:\n", "Amazing solution! Not good for the masses (it's better to integrate the miner in the binary) but great for experimentation and multiple machine mining. I'll be sure to have a go at this when I get a sec, kudos for putting this out.\n", "\n", "### Reply 1:\n", "It is interesting to see how you've split mining and wallet+P2P into separate pieces. Nice and modular.I'll be interested to see feedback from people, if they actually generate coins from this.\n", "\n", "### Reply 2:\n", "nelisky: Integrating CUDA/OpenCL seems to have portability issues. Also, my goal is actually to convince satoshi to patch the mainline. The patch must be crystal clear for this to happen.jgarzik: I tested this against vanilla client to be sure blocks are actually accepted. On ATI 4350 it makes ~5800 khash/s.Forgot to mention that original client generation could be used in parallel.\n", "\n", "### Reply 3:\n", "Yes, that is one of my biggest concerns. I don't have enough exposure to assert in multiple platforms / hw. And I have failed to provide a simple click and use distributable, as of yet, but as interest increases and more developers tackle this I'm sure one of us will provide a clean implementation that is production quality for satoshi.\n", "\n", "### Reply 4:\n", "davidonpda: you need1. Some OpenCL capable hardware and driver.2. python 2.6.63. PyOpenCL. This could be tricky, follow the official installation -h or --help for some options, by default looks for bitcoin RPC at 127.0.0.1:8332Hope this helps\n", "\n", "### Reply 5:\n", "Will opencl client works on ati hd3850?\n", "\n", "### Reply 6:\n", "ATI HD3850 has no OpenCL support.4xxx and 5xxx have.\n", "\n", "### Reply 7:\n", "Due to popular demand bitcoin PyOpenCL miner is available now at are some minor fixes. Be sure to experiment with globalThreads to achieve better performance/dekstop lag ratio.\n", "\n", "### Reply 8:\n", "Hmm, that's weird. Shouldn't the speed be much bigger, like 10-fold or 100-fold faster at least ?I mean there was this guy somewhere on the BTC forum who claimed that he's getting 983 Mhash/s (983 000 khash/sec) with just 3 radeons 5870 or something.\n", "\n", "### Reply 9:\n", "Yeah, I'm struggling with how OpenCL compiles kernels and the impact of the work size on performance. It is quite counter intuitive coming from CUDA, as the unrolling of loops and functions actually makes performance worse, as the kernel needs more space. I don't have any numbers for that ATI, but the 4350 seems to be a LOT less performant than the 5870, so it might not be that low.Once I have hardware to test this for real, I'll compare my approach to this one, so we can learn from each other.\n", "\n", "### Reply 10:\n", "There is information on wikipedia about the performance of various AMD/ATI and Nvidia chips.4350 is cited at 92 GFLOPS. 5870 has 2720 GFLOPS. tcatm has 3x5870s. Due to it's superior architecture 5870 is capable of more than just the difference in GFLOPS. For example I get 6 Mhash/s on 4350 and 137 Mhash/s on 5770 (ratio of 1/22) even if the ratio of GFLOPS for the relevant cards is 92 to 1360 (1/14).\n", "\n", "### Reply 11:\n", "don't have an ATI card, but even after reading those performance-infos i still can't believe that on a hd4350 makes sense to me, i get around 5-6.000 on a 8600gt, both listed around 100GFlops.my gtx260 gets ~40Mhash, 874GFlopsi'd expect a hd5870 makes at least 3times as much, cuz it's listed with 2700GFlops,which would result in around 400Mhash for 3 of those cards, that's what i would expect, so where's those extra 600Mhash coming from? it's superior architecture?if so, my next card will be ati again.\n", "\n", "### Reply 12:\n", "There's a lot more than GFlops to this equation. Memory bandwidth, for one, will be very important.\n", "\n", "### Reply 13:\n", "of course, but stilli'd like to know if that's a usual expectation on ati cards compared to nvidia,no single-hd5870-users around that want to share their hash-count?i'm gonna buy a new card sooner or later anyway and i don't mind if it says ati or nvidia on it,both will surely run my game/s.but if one of them is x times better crunching blocks and besides that, prolly cheaper too,i already know what my next favourite brand is.\n", "\n", "### Reply 14:\n", "Sorry, just realized i broke it with latest changes, please update. (It won't submit to RPC properly)\n", "\n", "### Reply 15:\n", "Added auto adjustment to keep desktop responsive. Also, doing hash rate calculation at user defined interval.\n", "\n", "### Reply 16:\n", "i'm getting when trying to run it\n", "\n", "### Reply 17:\n", "Slightly improved kernel (~10%). Fixed a problem with rotate() and Nvidia OpenCL. I won't upload anymore to the forum, please use the repo.\n", "\n", "### Reply 18:\n", "Do i need to use a special version of graphics drivers to get the OpenCL client working ?\n", "\n", "### Reply 19:\n", "I'm in the same position. All I need is the patch compiled into the client and I should be ready to go :/\n", "\n", "### Reply 20:\n", "Any chance of a 64 bit windows build?\n", "\n", "### Reply 21:\n", "now it segfaults: \n", "\n", "### Reply 22:\n", "Sorry, forgot about that. You should install json-rpc. See at u\n", "\n", "```\n", "\n", "\n", "\n", "Reply with the hardware names, all in the same line, separated by commas. Then, on a new line, list \"True\" or \"False\" for each piece of hardware to indicate ownership status. True if the mention suggests concrete ownership by any user, and False if the hardware is discussed in a hypothetical or speculative way.\n", "\n", "Assistant:\n", "Sure! Here is the requested output, with the correct ownership status for each piece of hardware:\n", "Hardware names: ATI 4350, ATI HD3850, 4xxx, 5xxx, radeons 5870, 5770, 8600gt, gtx260, hd5870\n", "Hardware ownership: True, False, False, False, True, True, True, True, False\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "2010-12-23 21:26:33 8800gt 5.426836453803508\n", "User:\n", "In the given Bitcoin forum thread, pay close attention to the language used when mentioning hardware pieces. Look for explicit statements indicating ownership or hypothetical discussions.\n", "\n", "```thread\n", "Date: 2014-02\n", "Topic: python OpenCL bitcoin miner\n", "### Original post:\n", "Moved actual search to separate thread to avoid IO overhead. It wasn't a problem when used with local bitcoin client, but become a problem with slush's mining pool.Davout, check if crossfire is switched off. Or try with lower clock. Xelister reported on #bitcoin-dev similar issues with 5970 and Diablo's miner.\n", "\n", "### Reply 1:\n", " --helpTraceback (most recent call last): File \"poclbm.py\", line 3, in File line 3, in File \"pyopencl\\_cl.pyc\", line 12, in File \"pyopencl\\_cl.pyc\", line 10, in __loadImportError: DLL load failed: The specified procedure could not be found.Maybe missing a dll?\n", "\n", "### Reply 2:\n", "Elanthius, in previous version I forgot to remove OpenCL.dll from the py2exe distribution. It is not there in current version and you should check that you have Stream SDK 2.2 installed and proper version of OpenCL.dll loadable by miner. Be sure there aren't multiple versions - for example if an nvidia one from previous drivers load first it could give you this error.\n", "\n", "### Reply 3:\n", "Hmm, I have an nvidia card that is OpenCL capable. I tried copying over the OpenCL.dll from system32 but that still crashes. In the end I just copied the dll out of the previous version and that seems fine. I'm getting 20Mh/s on a GeForce 8800 so its definitely using OpenCL appropriately.\n", "\n", "### Reply 4:\n", "I'm getting these too, didn't get them at all before git pulling latest miner version...\n", "\n", "### Reply 5:\n", "Your limit is already over 20 parallel jobs (increased before days). I hope m0mchil's miner is not so hungry .\n", "\n", "### Reply 6:\n", "I was getting the very same messages even before trying pooled mining\n", "\n", "### Reply 7:\n", "its not only the pool, its the same on local getwork-servers, aka mainline-clients.\n", "\n", "### Reply 8:\n", "Oh! Good to know! I didn't realized that. So it should not be related to 'max_jobs' solution in pool.\n", "\n", "### Reply 9:\n", "i guess it is, should have mentioned that earlier.i tried -testnet, cuz i didnt want to wait a day or 2 to let it happen and it's the exact same invalid-floods as soon as the first hash is found (the first one even makes it to the wallet sometimes).\n", "\n", "### Reply 10:\n", "Hello,I downloaded the miner and followed the instructions from the OP. I feel as though I have it set up correctly. When I try to run the miner a new CMD window flashes on my screen too rapidly to read anything, or even see if it says anything. I don't get any errors in the CMD window I'm using to launch the miner but I really don't feel like it's working. I'm also not sure how I'm able to tell if it is working.Any assistance would be appreciated.Thanks.\n", "\n", "### Reply 11:\n", "Looking at the opencl kernel, can the belowOrEquals function not avoid the endian related comparison of seperate bytes, instead moving the switch into the python code when creating targetH and targetG. Then less branches in kernel and perhaps better stream usage?\n", "\n", "### Reply 12:\n", "Finally got my hands on a GTX 275. Reporting stats:CPU: Core2 Extreme QX6700, 2.67 GHzOS: Gentoo Linux 2.6.34Client: Classic 0.3.19 (local build)khash/sec: ~5000GPU: Nvidia GeForce GTX 275Miner: m0mchil's OpenCL -r 3 -f 10 -w 256khash/sec: ~49500I have an old motherboard (PCIe 1.0a, etc.) which has a lot of strain on it, so your results with the same CPU or GPU could be better. It seems I should've gone for an ATI radeon though.\n", "\n", "### Reply 13:\n", "Does anyone know what the optimal settings are for a GTX 580?Thanks,DiSTANT\n", "\n", "### Reply 14:\n", "Yeah, I guess the problem lies with Nvidia's OpenCL drivers which are less than optimal. If there was a CUDA miner available, Nvidia users would probably get more comparable results.. So, who's up to the task?\n", "\n", "### Reply 15:\n", "Nvidia hardware sucks for mining at the hardware level. CUDA won't help.\n", "\n", "### Reply 16:\n", "Sell it and buy an ATI card.\n", "\n", "### Reply 17:\n", "Hi,poclbm finally told me that a block was accepted (after 3 days with getinfo shows no balance of +50 until now, though.I read somewhere that this might take very long because the new block is checked very intensively. Couldn't find the text again, though.So can you tell me that I can calm down or went something wrong and the 3 days of work are gone for somebody else?\n", "\n", "### Reply 18:\n", "you have to wait 120 blocks before the coins mature,otherwise you might spend coins that were generated on a chain fork\n", "\n", "### Reply 19:\n", "Thanks a lot for quick reply, davout!Is it possible to see this on blockexplorer.com? What do I have to look for?\n", "\n", "### Reply 20:\n", "You can see the block on BBE as soon as it is generated (1-minute delay). If it shows up there, it probably won't be reversed, though from time to time this does happen. It won't appear in your balance until it is 120 blocks deep.The block hash is printed to debug.log by Bitcoin when you find a block. poclbm itself might also do found hash: can use the hash to search BBE for the block.\n", "\n", "### Reply 21:\n", "Hi, are there any references you can recommend a\n", "\n", "```\n", "\n", "\n", "\n", "Reply with the hardware names, all in the same line, separated by commas. Then, on a new line, list \"True\" or \"False\" for each piece of hardware to indicate ownership status. True if the mention suggests concrete ownership by any user, and False if the hardware is discussed in a hypothetical or speculative way.\n", "\n", "Assistant:\n", "Sure! Here is the requested output, with the correct ownership status for each piece of hardware:\n", "Hardware names: 5970, Diablo's miner, nvidia card, GeForce 8800, GTX 275, Core2 Extreme QX6700, GTX 580, ATI radeon, ATI card\n", "Hardware ownership: False, False, True, True, True, True, False, False, False\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "2010-12-23 21:26:33 gtx275 5.365487984890899\n", "User:\n", "In the given Bitcoin forum thread, pay close attention to the language used when mentioning hardware pieces. Look for explicit statements indicating ownership or hypothetical discussions.\n", "\n", "```thread\n", "Date: 2014-02\n", "Topic: python OpenCL bitcoin miner\n", "### Original post:\n", "Moved actual search to separate thread to avoid IO overhead. It wasn't a problem when used with local bitcoin client, but become a problem with slush's mining pool.Davout, check if crossfire is switched off. Or try with lower clock. Xelister reported on #bitcoin-dev similar issues with 5970 and Diablo's miner.\n", "\n", "### Reply 1:\n", " --helpTraceback (most recent call last): File \"poclbm.py\", line 3, in File line 3, in File \"pyopencl\\_cl.pyc\", line 12, in File \"pyopencl\\_cl.pyc\", line 10, in __loadImportError: DLL load failed: The specified procedure could not be found.Maybe missing a dll?\n", "\n", "### Reply 2:\n", "Elanthius, in previous version I forgot to remove OpenCL.dll from the py2exe distribution. It is not there in current version and you should check that you have Stream SDK 2.2 installed and proper version of OpenCL.dll loadable by miner. Be sure there aren't multiple versions - for example if an nvidia one from previous drivers load first it could give you this error.\n", "\n", "### Reply 3:\n", "Hmm, I have an nvidia card that is OpenCL capable. I tried copying over the OpenCL.dll from system32 but that still crashes. In the end I just copied the dll out of the previous version and that seems fine. I'm getting 20Mh/s on a GeForce 8800 so its definitely using OpenCL appropriately.\n", "\n", "### Reply 4:\n", "I'm getting these too, didn't get them at all before git pulling latest miner version...\n", "\n", "### Reply 5:\n", "Your limit is already over 20 parallel jobs (increased before days). I hope m0mchil's miner is not so hungry .\n", "\n", "### Reply 6:\n", "I was getting the very same messages even before trying pooled mining\n", "\n", "### Reply 7:\n", "its not only the pool, its the same on local getwork-servers, aka mainline-clients.\n", "\n", "### Reply 8:\n", "Oh! Good to know! I didn't realized that. So it should not be related to 'max_jobs' solution in pool.\n", "\n", "### Reply 9:\n", "i guess it is, should have mentioned that earlier.i tried -testnet, cuz i didnt want to wait a day or 2 to let it happen and it's the exact same invalid-floods as soon as the first hash is found (the first one even makes it to the wallet sometimes).\n", "\n", "### Reply 10:\n", "Hello,I downloaded the miner and followed the instructions from the OP. I feel as though I have it set up correctly. When I try to run the miner a new CMD window flashes on my screen too rapidly to read anything, or even see if it says anything. I don't get any errors in the CMD window I'm using to launch the miner but I really don't feel like it's working. I'm also not sure how I'm able to tell if it is working.Any assistance would be appreciated.Thanks.\n", "\n", "### Reply 11:\n", "Looking at the opencl kernel, can the belowOrEquals function not avoid the endian related comparison of seperate bytes, instead moving the switch into the python code when creating targetH and targetG. Then less branches in kernel and perhaps better stream usage?\n", "\n", "### Reply 12:\n", "Finally got my hands on a GTX 275. Reporting stats:CPU: Core2 Extreme QX6700, 2.67 GHzOS: Gentoo Linux 2.6.34Client: Classic 0.3.19 (local build)khash/sec: ~5000GPU: Nvidia GeForce GTX 275Miner: m0mchil's OpenCL -r 3 -f 10 -w 256khash/sec: ~49500I have an old motherboard (PCIe 1.0a, etc.) which has a lot of strain on it, so your results with the same CPU or GPU could be better. It seems I should've gone for an ATI radeon though.\n", "\n", "### Reply 13:\n", "Does anyone know what the optimal settings are for a GTX 580?Thanks,DiSTANT\n", "\n", "### Reply 14:\n", "Yeah, I guess the problem lies with Nvidia's OpenCL drivers which are less than optimal. If there was a CUDA miner available, Nvidia users would probably get more comparable results.. So, who's up to the task?\n", "\n", "### Reply 15:\n", "Nvidia hardware sucks for mining at the hardware level. CUDA won't help.\n", "\n", "### Reply 16:\n", "Sell it and buy an ATI card.\n", "\n", "### Reply 17:\n", "Hi,poclbm finally told me that a block was accepted (after 3 days with getinfo shows no balance of +50 until now, though.I read somewhere that this might take very long because the new block is checked very intensively. Couldn't find the text again, though.So can you tell me that I can calm down or went something wrong and the 3 days of work are gone for somebody else?\n", "\n", "### Reply 18:\n", "you have to wait 120 blocks before the coins mature,otherwise you might spend coins that were generated on a chain fork\n", "\n", "### Reply 19:\n", "Thanks a lot for quick reply, davout!Is it possible to see this on blockexplorer.com? What do I have to look for?\n", "\n", "### Reply 20:\n", "You can see the block on BBE as soon as it is generated (1-minute delay). If it shows up there, it probably won't be reversed, though from time to time this does happen. It won't appear in your balance until it is 120 blocks deep.The block hash is printed to debug.log by Bitcoin when you find a block. poclbm itself might also do found hash: can use the hash to search BBE for the block.\n", "\n", "### Reply 21:\n", "Hi, are there any references you can recommend a\n", "\n", "```\n", "\n", "\n", "\n", "Reply with the hardware names, all in the same line, separated by commas. Then, on a new line, list \"True\" or \"False\" for each piece of hardware to indicate ownership status. True if the mention suggests concrete ownership by any user, and False if the hardware is discussed in a hypothetical or speculative way.\n", "\n", "Assistant:\n", "Sure! Here is the requested output, with the correct ownership status for each piece of hardware:\n", "Hardware names: 5970, Diablo's miner, nvidia card, GeForce 8800, GTX 275, Core2 Extreme QX6700, GTX 580, ATI radeon, ATI card\n", "Hardware ownership: False, False, True, True, True, True, False, False, False\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] } ], "source": [ "instances = pd.read_csv('hardware_instances_inc_threads.csv') # columns: date,thread\n", "\n", "\n", "efficiency = pd.read_csv('hardware_instances_with_efficiency.csv') # columns: date,hardware_name,TH/J\n", "efficiency[\"ln_efficiency\"] = np.log10(efficiency[\"TH/J\"]*1000000000000)\n", "# efficiency = efficiency[efficiency[\"date\"] > \"2013-01-01\"]\n", "# efficiency = efficiency[efficiency[\"date\"] > \"2015-07-01\"]\n", "efficiency = efficiency[efficiency[\"ln_efficiency\"] < 7.5]\n", "\n", "\n", "\n", "i = 0\n", "for index, row in efficiency.iterrows():\n", " print(row[\"date\"], row[\"hardware_name\"], row[\"ln_efficiency\"])\n", " filtered = instances[instances[\"date\"] == row[\"date\"]]\n", " print(filtered.iloc[0][\"thread\"])\n", " print(\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\")\n", " if i > 5:\n", " break\n", " i += 1" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2011-07-06 16:49:46 ion\n", "User:\n", "In the given Bitcoin forum thread, pay close attention to the language used when mentioning hardware pieces. Look for explicit statements indicating ownership or hypothetical discussions.\n", "\n", "```thread\n", "Date: 2011-07\n", "Topic: Multipool - the pool mining pool (with source code)\n", "### Original post:\n", "Installing all prerequisite modules without being a new user account, here \"teensy\".* gcc needs to be installed* Multipool.pl (to test it works)First, we fetch \"cpanm\", best practice Perl module curl -L > cpanm chmod +x cpanmWe will then install the prerequisites under the current directory's \"lib\" subdirectory. This is done via the parameter \"-l lib\" to ./cpanm -l lib Working on ... OKConfiguring JSON-RPC-0.96 ... OKBuilding and testing JSON-RPC-0.96 ... OKSuccessfully installed JSON-RPC-0.961 distribution is a signed package, we need to make sure we have the right signature or it will hang and cause gpg --recv-keys --keyserver 6A2A7D39gpg: directory createdgpg: new configuration file createdgpg: WARNING: options in are not yet active during this rungpg: keyring createdgpg: keyring createdgpg: requesting key 6A2A7D39 from hkp server trustdb createdgpg: key 6A2A7D39: public key \"Toby Inkster importedgpg: no ultimately trusted keys foundgpg: Total number processed: 1gp\n", "\n", "### Reply 1:\n", "Nice work, myself! I'm a little more confident of setting up a local multipool now. Cheers!\n", "\n", "### Reply 2:\n", "Incredible post and guide. Very useful to me.If I wanted to set up a server to run multipool on, and have friends connect to it, would I need a powerful computer to run the MultiPool server on? Because I have a NetTop that I can use that has a duel core processor in it with Nvidia ION video card. It's not all powerful, but it runs things just fine. It's my media server for the house.Also, couldn't I just set up a DNS using no-ip to have people connect to it through their mining application? Is there a benefit to me or other people to have people connect to the multipool together?Is there any more info or tips someone can give me for doing anything else?\n", "\n", "### Reply 3:\n", "Worse, I'm seeing over half the shares submitted to bitcoins.lc rejected.\n", "\n", "### Reply 4:\n", "If you want stats, use btc-poolwatch.com Works with any pool that provides an API, all your results in one place. Make a donation to rearwheels if the site helps you.\n", "\n", "### Reply 5:\n", "any idea where the bitcoind files are on deb? Do I need to get the username and password from bitcoind?Thanks man.\n", "\n", "### Reply 6:\n", "You need to create a file named bitcoind.conf *in the same directory as Multipool.pl*, containing *in one single line*, *separated by a space* the username and password you need to use to connect to the local bitcoind instance.Much of the confusion comes from Multipool.pl naming that config file the same name as the one used by bitcoind Your \"real\" bitcoind.conf (the one that controls which username and password bitcoind is to accept) is usually found in and the wiki explains how to put info ls Multipool.pl #we are in the same directory where Multipool.pl isMultipool.pl$ cat cat mypassword$ as you see above, the \"local\" bitcoind.conf needs to contain the username and password from the \"real\" bitcoind.conf, separated by a space.\n", "\n", "### Reply 7:\n", "Does multipool cashout automatically from the pools it mines from?\n", "\n", "### Reply 8:\n", "No i meant, i set multipool to mine from pool 1,2,3,4,5.How do i get my BTC from the 5 pools to my wallet?This part. Is it automatic?\n", "\n", "### Reply 9:\n", "Thanks for the info and examples - appreciate it\n", "\n", "### Reply 10:\n", "If you are using Multipool.pl alone, you don't need to: just log in on each of the five pools' websites, and have them pay the balance to your wallet.That part is only necessary if you run Multipool.pl as a service for other users, too.\n", "\n", "### Reply 11:\n", "Nope, I see this directly at bitcoins.lc web site stats page. Also see them rejected in multipool's log. All the other pools accept most of the shares. There were so many of them, and bitcoins.lc was being chosen often enough, that I had to remove bitcoins.lc entirely or risk losing a lot of hashing power. I have not yet gotten into the spaghetti code to see what, if anything, might be going on...\n", "\n", "### Reply 12:\n", "I had similar issues; they stem from the fact that Multipool.pl uses the \"local\" bitcoind to know when there is a new block.IIRC, it also does not completely clear up the queue on a new block received (as threads have to pick that up).As such, the following scenarios may develop:- the miner receives the long poll, and the miner does _not_ clear its queue / request more work => nothing to do with Multipool.pl but I think phoenix did that -- you can verify this by seeing if the rejects are clustered after a long poll.- your bitcoind sees the block & notifies the miners at the same time as all the pools you're getting work from also see it; all is well as the new work fetched by Multipool.pl is pristine and ne\n", "\n", "```\n", "\n", "\n", "\n", "Reply with the hardware names, all in the same line, separated by commas. Then, on a new line, list \"True\" or \"False\" for each piece of hardware to indicate ownership status. True if the mention suggests concrete ownership by any user, and False if the hardware is discussed in a hypothetical or speculative way.\n", "\n", "Assistant:\n", "Sure! Here is the requested output, with the correct ownership status for each piece of hardware:\n", "Hardware names: NetTop, duel core processor, Nvidia ION video card\n", "Hardware ownership: True, True, True\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "2011-09-28 18:26:12 ion\n", "User:\n", "In the given Bitcoin forum thread, pay close attention to the language used when mentioning hardware pieces. Look for explicit statements indicating ownership or hypothetical discussions.\n", "\n", "```thread\n", "Date: 2013-05\n", "Topic: R600 Bitcoin Miner (Warning: Exceedingly impractical)\n", "### Original post:\n", "So the old radeons are slower than current nvidia cards? I sold my radeon a long time ago, so I can't test it.\n", "\n", "### Reply 1:\n", "Question decade. Can you make it work for an IGP? I.e an integrated HD4200(which people say is actually an HD3k igp)\n", "\n", "### Reply 2:\n", "Well...- I have 2 ATI cards in my known technology collection (amongst about 7-10 nVidias, about 6 of which are capable of mining - at 2-5 Mhash/sec).-- One of which is the 6770 that I use for mining 24/7.-- The other is a 3700, if I remember correctly.- I'd really like some freedom to play with other pools.- I've only ever made a grand total of about 0.6 Bitcoin in the entire ~3 weeks of 24/7 mining on the 6770.-- Low, low price of 5 BTC my ass? I think it'd take an eternity to mine that back...If the miner goes faster on the 3700, than the ~20 Mhash/sec that my horrifyingly over-powered (and now blown-out, evidently) 8800GTS produces, I'd love to play around with it... even if it's stupidly inefficient, you'd really just need to step back and look at how bad nVidias are that people still try to mine with\n", "\n", "### Reply 3:\n", "So, for the fun of it, and because I don't have any newer graphics cards, I've modified m0mchil's poclbm into something that works on R600 video cards. These are the Radeon HD 2000 and 3000 series. I never bothered to rename it.64-bit Windows binary code of the hints on how to build the source code are in the comments on the bottom of the C++ files. To use the Python source, you need some current version of Python 2, Numpy, and Boost::Python. To use the Brook+ source, you need ATI Stream SDK 1.4 beta and some C++ compiler, and some common sense.Let's discuss the reasons not to mine on an R600.By now, they are fairly old. Not all of them were that fast, either. I think my HP notebook is thermally throttling the video card.They don't support the gather/scatter I/O operations that the OpenCL miners use to minimize memory and bandwidth use.They don't have the 1-instruction rotate operation, that makes the modern Radeons so much faster than the modern GeForces. Nor do they have the 1-instruction bitselect instruction that AMD strangely doesn't expose to any APIs.Shifting is extremely inefficient, only 1/5 the speed of normal operations. That's because the ATI design has 4 \n", "\n", "### Reply 4:\n", "Oops, I rearranged and forgot to renumber. Fixed.Probably. Bullet points 3 and 4. Bullet point 3 is a reference to the Bitcoin wiki. by the same measure that a modern Radeon has a 1.7x advantage over a modern GeForce, the older Radeon does not have that advantage, and in fact has a sloppily estimated 3.5x disadvantage. And that doesn't account for manufacturing process or runtime differences.I don't know. I don't have a Radeon IGP. AMD's spec thing says the Radeon 4200 has the 40 unified shaders supporting the ATI Stream Technology, so it should already work with 64-bit Windows. For the low, low price of 5 BTC, I might be convinced to try to make it work on other platforms, too. I doubt you could recover even the costs of electricity with that chip.I'm trying to consider the value of my time, here. And while the difficulty of mining increases, the exchange rate decreases, so I think even 5 BTC is only worth it for playing around. Instead, I give you my source code, which is everything you need to try it on your own, except for the links to the SDKs, and however long it takes it learn how to work those says the SHA-256 kernel should do 6M threads/sec on a Radeon H\n", "\n", "### Reply 5:\n", "Can you convert 6 mill threads to mh/s?Also, these 5 bitcoins...5 bitcoins per person, or it could be small donations from everyone to make 5 bitcoins?\n", "\n", "### Reply 6:\n", "No. I don't have any of the GPUs in KernelAnalyzer's group of simulated GPUs. I have only this Radeon HD 3410. I assume it's roughly 4 hashes per thread, so 6 Mthreads/s approximates 24 MH/s. Probably less because of runtime overhead.Let's say 5 BTC per platform.\n", "\n", "### Reply 7:\n", "Okay, fine. If you can do it, count me in for 3 BTC. Anyone else want to cough up the missing 2?I could really use this at the office. Best card I've got in my desk PC is an nVidia 8600GT that bakes 83 C crunching out 3-4 Mhash/sec, or an nVidia Ion with an Atom that, if overclocked, crunches 7 Mhash/sec. And I've got a couple cards laying around gathering dust that could be crunching 20? Sheez. It's worth it!\n", "\n", "### Reply 8:\n", "@rTech: I think we just need to wait for the remaining 1.5 BTC to be volunteered\n", "\n", "### Reply 9:\n", "Yep, I'm in for 3, so if you're in for 2, there's our 5 Bitcoin Yo, Decade! edit: Just checked on the GPU I'll be looking at using this on, and it's a Radeon HD 3600. Just FYI.\n", "\n", "### Reply 10:\n", "I actually managed to get 64 version to work with my ASUS EAH 3450 256MB.1.1 Mhash is the neat result, ill post pictures later.\n", "\n", "### Reply 11:\n", "Wait, wait. I don't think you're minin\n", "\n", "```\n", "\n", "\n", "\n", "Reply with the hardware names, all in the same line, separated by commas. Then, on a new line, list \"True\" or \"False\" for each piece of hardware to indicate ownership status. True if the mention suggests concrete ownership by any user, and False if the hardware is discussed in a hypothetical or speculative way.\n", "\n", "Assistant:\n", "Sure! Here is the requested output, with the correct ownership status for each piece of hardware:\n", "Hardware names: Radeon, HD4200, ATI cards, 6770, 3700, 8800GTS, Radeon HD 2000 and 3000 series, HP notebook, Radeon IGP, Radeon 4200, Radeon HD 3410, nVidia 8600GT, nVidia Ion, Radeon HD 3600, ASUS EAH 3450 256MB\n", "Hardware ownership: False, False, True, True, True, True, True, True, False, False, True, True, True, True, True\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] } ], "source": [ "instances = pd.read_csv('hardware_instances_inc_threads.csv') # columns: date,thread\n", "efficiency = pd.read_csv('hardware_instances_with_efficiency.csv') # columns: date,hardware_name,TH/J\n", "\n", "# find rows where hardware_name = \"ion\"\n", "efficiency = efficiency[efficiency[\"hardware_name\"] == \"ion\"]\n", "\n", "\n", "i = 0\n", "for index, row in efficiency.iterrows():\n", " print(row[\"date\"], row[\"hardware_name\"])\n", " filtered = instances[instances[\"date\"] == row[\"date\"]]\n", " print(filtered.iloc[0][\"thread\"])\n", " print(\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\")\n", " if i > 5:\n", " break\n", " i += 1" ] } ], "metadata": { "kernelspec": { "display_name": "py310", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.13" } }, "nbformat": 4, "nbformat_minor": 2 }