maxdz8 / m8m Goto Github PK
View Code? Open in Web Editor NEWAn (hopefully) educational cryptocurrency miner.
License: MIT License
An (hopefully) educational cryptocurrency miner.
License: MIT License
Agreed output format
<hashRate_total>;<accepted>;<rejected>;<generator_device>;<hashRate_device>
To be dumped to console when... a new share is reported? Sent? Agreed on the former.
Also required to disable tray icon.
Proposal is to have two new commandline switches
--notray
--showStats
Main problem: this interacts with the intended rewrite of the monitoring subsystem.
Also: should a --debugOutput switch be also added?
An user running r290x reported the config wizard hangs after "probing hardware...".
This bug will have to be investigated with care. Users experiencing this issue can use the following config file for v450 as a temporary fix
{
"pools": [
{
"url": "XXXXXXXXXXXXXX",
"user": "XXXXXXXXXXXX",
"pass": "XXXXXXXXXXXXXX",
"coinDiffMul": 256,
"algo": "qubit",
"protocol": "stratum",
"name": "XXXXXXXXXXXXXXXXXX"
}
],
"driver": "OCL",
"algo": "qubit",
"impl": "fiveSteps",
"checkNonces": false,
"implParams": {
"qubit": {
"fiveSteps": {
"linearIntensity": YYYY
}
}
}
}
An appropriate value for linearIntensity on 290x is probably somewhere topping at 4096.
Reported by the same user as #19
This is a known issue. As of 801 I have begun to restructure everything so web services are pulled up before even trying init.
A minor annoyance is: the web monitor protocol does not adequately support updating some values involved by pulling up the miners after the monitor itself is started. I will have to investigate whatever this is a real world problem. Sure thing is the web facilities should be up way before init completes.
Not sure this is even a bug. It is really how the way was supposed to be, just unconvenient. So I'm tagging it both bug and enhancement.
This is a known issue.
It is present in all versions but it's particularly apparent in v801.
Previous versions just kept churning away doing nothing useful.
The good news: I mostly know how to reproduce it and I have a few ideas on how to fix it.
The bad news: fixing this is part of the intended rewrite of pool management involving high-frequency pool switching, a feature which is not planned even for Beta (it is probably a 1.0 feature).
An user reported the config wizard bailing out after "Probing hardware..."
browser (Chrome) reports
Uncaught TypeError: Cannot read property 'substr' of undefined
System has 2 platforms
Driver version is 1526.3. At the time this is being written, current driver reports 1642.5.
User sent clinfo output:
Number of platforms: 2
Platform Profile: FULL_PROFILE
Platform Version: OpenCL 1.2
Platform Name: Intel(R) OpenCL
Platform Vendor: Intel(R) Corporation
Platform Extensions: cl_khr_fp64 cl_khr_icd cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_intel_printf cl_ext_device_fission cl_intel_exec_by_local_thread cl_khr_gl_sharing cl_intel_dx9_media_sharing cl_khr_dx9_media_sharing cl_khr_d3d11_sharing
Platform Profile: FULL_PROFILE
Platform Version: OpenCL 1.2 AMD-APP (1526.3)
Platform Name: AMD Accelerated Parallel Processing
Platform Vendor: Advanced Micro Devices, Inc.
Platform Extensions: cl_khr_icd cl_khr_d3d10_sharing cl_khr_d3d11_sharing cl_khr_dx9_media_sharing cl_amd_event_callback cl_amd_offline_devices
Platform Name: Intel(R) OpenCL
Number of devices: 1
Device Type: CL_DEVICE_TYPE_CPU
Vendor ID: 8086h
Max compute units: 2
Max work items dimensions: 3
Max work items[0]: 1024
Max work items[1]: 1024
Max work items[2]: 1024
Max work group size: 1024
Preferred vector width char: 1
Preferred vector width short: 1
Preferred vector width int: 1
Preferred vector width long: 1
Preferred vector width float: 1
Preferred vector width double: 1
Native vector width char: 16
Native vector width short: 8
Native vector width int: 4
Native vector width long: 2
Native vector width float: 4
Native vector width double: 2
Max clock frequency: 3000Mhz
Address bits: 64
Max memory allocation: 1056850944
Image support: Yes
Max number of images read arguments: 480
Max number of images write arguments: 480
Max image 2D width: 16384
Max image 2D height: 16384
Max image 3D width: 2048
Max image 3D height: 2048
Max image 3D depth: 2048
Max samplers within kernel: 480
Max size of kernel argument: 3840
Alignment (bits) of base address: 1024
Minimum alignment (bytes) for any datatype: 128
Single precision floating point capability
Denorms: Yes
Quiet NaNs: Yes
Round to nearest even: Yes
Round to zero: No
Round to +ve and infinity: No
IEEE754-2008 fused multiply-add: No
Cache type: Read/Write
Cache line size: 64
Cache size: 262144
Global memory size: 4227403776
Constant buffer size: 131072
Max number of constant args: 480
Local memory type: Global
Local memory size: 32768
Kernel Preferred work group size multiple: 128
Error correction support: 0
Unified memory for Host and Device: 1
Profiling timer resolution: 341
Device endianess: Little
Available: Yes
Compiler available: Yes
Execution capabilities:
Execute OpenCL kernels: Yes
Execute native function: Yes
Queue properties:
Out-of-Order: Yes
Profiling : Yes
Platform ID: 000000000022A4C0
Name: Intel(R) Pentium(R) CPU G3220 @ 3.00GHz
Vendor: Intel(R) Corporation
Device OpenCL C version: OpenCL C 1.2
Driver version: 3.0.1.10878
Profile: FULL_PROFILE
Version: OpenCL 1.2 (Build 76413)
Extensions: cl_khr_fp64 cl_khr_icd cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_intel_printf cl_ext_device_fission cl_intel_exec_by_local_thread cl_khr_gl_sharing cl_intel_dx9_media_sharing cl_khr_dx9_media_sharing cl_khr_d3d11_sharing
Platform Name: AMD Accelerated Parallel Processing
Number of devices: 4
Device Type: CL_DEVICE_TYPE_GPU
Vendor ID: 1002h
Board name: AMD Radeon R9 200 Series
Device Topology: PCI[ B#3, D#0, F#0 ]
Max compute units: 32
Max work items dimensions: 3
Max work items[0]: 256
Max work items[1]: 256
Max work items[2]: 256
Max work group size: 256
Preferred vector width char: 4
Preferred vector width short: 2
Preferred vector width int: 1
Preferred vector width long: 1
Preferred vector width float: 1
Preferred vector width double: 1
Native vector width char: 4
Native vector width short: 2
Native vector width int: 1
Native vector width long: 1
Native vector width float: 1
Native vector width double: 1
Max clock frequency: 1000Mhz
Address bits: 32
Max memory allocation: 2951741440
Image support: Yes
Max number of images read arguments: 128
Max number of images write arguments: 8
Max image 2D width: 16384
Max image 2D height: 16384
Max image 3D width: 2048
Max image 3D height: 2048
Max image 3D depth: 2048
Max samplers within kernel: 16
Max size of kernel argument: 1024
Alignment (bits) of base address: 2048
Minimum alignment (bytes) for any datatype: 128
Single precision floating point capability
Denorms: No
Quiet NaNs: Yes
Round to nearest even: Yes
Round to zero: Yes
Round to +ve and infinity: Yes
IEEE754-2008 fused multiply-add: Yes
Cache type: Read/Write
Cache line size: 64
Cache size: 16384
Global memory size: 3221225472
Constant buffer size: 65536
Max number of constant args: 8
Local memory type: Scratchpad
Local memory size: 32768
Kernel Preferred work group size multiple: 64
Error correction support: 0
Unified memory for Host and Device: 0
Profiling timer resolution: 1
Device endianess: Little
Available: Yes
Compiler available: Yes
Execution capabilities:
Execute OpenCL kernels: Yes
Execute native function: No
Queue properties:
Out-of-Order: No
Profiling : Yes
Platform ID: 000007FEDF09DB60
Name: Tahiti
Vendor: Advanced Micro Devices, Inc.
Device OpenCL C version: OpenCL C 1.2
Driver version: 1526.3 (VM)
Profile: FULL_PROFILE
Version: OpenCL 1.2 AMD-APP (1526.3)
Extensions: cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_atomic_counters_32 cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_d3d10_sharing cl_khr_d3d11_sharing cl_khr_dx9_media_sharing cl_khr_image2d_from_buffer cl_khr_spir cl_khr_gl_event
Device Type: CL_DEVICE_TYPE_GPU
Vendor ID: 1002h
Board name: AMD Radeon R9 200 Series
Device Topology: PCI[ B#1, D#0, F#0 ]
Max compute units: 40
Max work items dimensions: 3
Max work items[0]: 256
Max work items[1]: 256
Max work items[2]: 256
Max work group size: 256
Preferred vector width char: 4
Preferred vector width short: 2
Preferred vector width int: 1
Preferred vector width long: 1
Preferred vector width float: 1
Preferred vector width double: 1
Native vector width char: 4
Native vector width short: 2
Native vector width int: 1
Native vector width long: 1
Native vector width float: 1
Native vector width double: 1
Max clock frequency: 1000Mhz
Address bits: 32
Max memory allocation: 3221225472
Image support: Yes
Max number of images read arguments: 128
Max number of images write arguments: 8
Max image 2D width: 16384
Max image 2D height: 16384
Max image 3D width: 2048
Max image 3D height: 2048
Max image 3D depth: 2048
Max samplers within kernel: 16
Max size of kernel argument: 1024
Alignment (bits) of base address: 2048
Minimum alignment (bytes) for any datatype: 128
Single precision floating point capability
Denorms: No
Quiet NaNs: Yes
Round to nearest even: Yes
Round to zero: Yes
Round to +ve and infinity: Yes
IEEE754-2008 fused multiply-add: Yes
Cache type: Read/Write
Cache line size: 64
Cache size: 16384
Global memory size: 3221225472
Constant buffer size: 65536
Max number of constant args: 8
Local memory type: Scratchpad
Local memory size: 32768
Kernel Preferred work group size multiple: 64
Error correction support: 0
Unified memory for Host and Device: 0
Profiling timer resolution: 1
Device endianess: Little
Available: Yes
Compiler available: Yes
Execution capabilities:
Execute OpenCL kernels: Yes
Execute native function: No
Queue properties:
Out-of-Order: No
Profiling : Yes
Platform ID: 000007FEDF09DB60
Name: Hawaii
Vendor: Advanced Micro Devices, Inc.
Device OpenCL C version: OpenCL C 1.2
Driver version: 1526.3 (VM)
Profile: FULL_PROFILE
Version: OpenCL 1.2 AMD-APP (1526.3)
Extensions: cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_atomic_counters_32 cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_d3d10_sharing cl_khr_d3d11_sharing cl_khr_dx9_media_sharing cl_khr_image2d_from_buffer cl_khr_spir cl_khr_gl_event
Device Type: CL_DEVICE_TYPE_GPU
Vendor ID: 1002h
Board name: AMD Radeon HD 6700 Series
Device Topology: PCI[ B#5, D#0, F#0 ]
Max compute units: 10
Max work items dimensions: 3
Max work items[0]: 256
Max work items[1]: 256
Max work items[2]: 256
Max work group size: 256
Preferred vector width char: 16
Preferred vector width short: 8
Preferred vector width int: 4
Preferred vector width long: 2
Preferred vector width float: 4
Preferred vector width double: 0
Native vector width char: 16
Native vector width short: 8
Native vector width int: 4
Native vector width long: 2
Native vector width float: 4
Native vector width double: 0
Max clock frequency: 1000Mhz
Address bits: 32
Max memory allocation: 536870912
Image support: Yes
Max number of images read arguments: 128
Max number of images write arguments: 8
Max image 2D width: 16384
Max image 2D height: 16384
Max image 3D width: 2048
Max image 3D height: 2048
Max image 3D depth: 2048
Max samplers within kernel: 16
Max size of kernel argument: 1024
Alignment (bits) of base address: 2048
Minimum alignment (bytes) for any datatype: 128
Single precision floating point capability
Denorms: No
Quiet NaNs: Yes
Round to nearest even: Yes
Round to zero: Yes
Round to +ve and infinity: Yes
IEEE754-2008 fused multiply-add: Yes
Cache type: None
Cache line size: 0
Cache size: 0
Global memory size: 1073741824
Constant buffer size: 65536
Max number of constant args: 8
Local memory type: Scratchpad
Local memory size: 32768
Kernel Preferred work group size multiple: 64
Error correction support: 0
Unified memory for Host and Device: 0
Profiling timer resolution: 1
Device endianess: Little
Available: Yes
Compiler available: Yes
Execution capabilities:
Execute OpenCL kernels: Yes
Execute native function: No
Queue properties:
Out-of-Order: No
Profiling : Yes
Platform ID: 000007FEDF09DB60
Name: Juniper
Vendor: Advanced Micro Devices, Inc.
Device OpenCL C version: OpenCL C 1.2
Driver version: 1526.3 (VM)
Profile: FULL_PROFILE
Version: OpenCL 1.2 AMD-APP (1526.3)
Extensions: cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_atomic_counters_32 cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_d3d10_sharing cl_khr_d3d11_sharing cl_khr_dx9_media_sharing cl_amd_image2d_from_buffer_read_only cl_khr_spir cl_khr_gl_event
Device Type: CL_DEVICE_TYPE_CPU
Vendor ID: 1002h
Board name:
Max compute units: 2
Max work items dimensions: 3
Max work items[0]: 1024
Max work items[1]: 1024
Max work items[2]: 1024
Max work group size: 1024
Preferred vector width char: 16
Preferred vector width short: 8
Preferred vector width int: 4
Preferred vector width long: 2
Preferred vector width float: 4
Preferred vector width double: 2
Native vector width char: 16
Native vector width short: 8
Native vector width int: 4
Native vector width long: 2
Native vector width float: 4
Native vector width double: 2
Max clock frequency: 2998Mhz
Address bits: 64
Max memory allocation: 2147483648
Image support: Yes
Max number of images read arguments: 128
Max number of images write arguments: 8
Max image 2D width: 8192
Max image 2D height: 8192
Max image 3D width: 2048
Max image 3D height: 2048
Max image 3D depth: 2048
Max samplers within kernel: 16
Max size of kernel argument: 4096
Alignment (bits) of base address: 1024
Minimum alignment (bytes) for any datatype: 128
Single precision floating point capability
Denorms: Yes
Quiet NaNs: Yes
Round to nearest even: Yes
Round to zero: Yes
Round to +ve and infinity: Yes
IEEE754-2008 fused multiply-add: Yes
Cache type: Read/Write
Cache line size: 64
Cache size: 32768
Global memory size: 4227403776
Constant buffer size: 65536
Max number of constant args: 8
Local memory type: Global
Local memory size: 32768
Kernel Preferred work group size multiple: 1
Error correction support: 0
Unified memory for Host and Device: 1
Profiling timer resolution: 341
Device endianess: Little
Available: Yes
Compiler available: Yes
Execution capabilities:
Execute OpenCL kernels: Yes
Execute native function: Yes
Queue properties:
Out-of-Order: No
Profiling : Yes
Platform ID: 000007FEDF09DB60
Name: Intel(R) Pentium(R) CPU G3220 @ 3.00GHz
Vendor: GenuineIntel
Device OpenCL C version: OpenCL C 1.2
Driver version: 1526.3 (sse2)
Profile: FULL_PROFILE
Version: OpenCL 1.2 AMD-APP (1526.3)
Extensions: cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_device_fission cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_d3d10_sharing cl_khr_spir cl_khr_gl_event
Reported by user A, running M8M and user B running M8M kernel ported to a special sgminer build.
User A reported lower performance, in the order of 25% lower.
User B reported performance cut in half. It is known he is using an old driver.
This must be better investigated by users themselves as I have no way to reproduce.
GPU is churning and albeit a short warning is displayed, I should be smarter about that.
Observed in 0.1.896 Beta.
To be fixed in next release.
Observed in 0.1.896 Beta.
To be fixed in next release.
The idea is that pool not providing a matching algorithm are left white, while pools eligible for processing are green.
The failed login spews out an error message. Perhaps both green and red is confusing. Red over red would reduce contrast...
This is more apparent in memory hard algorithms.
The current way the slider is generated is too inflexible, it can cause the card to run out of max alloc size and cause a stop.
That shouldn't be the case: since I'm now data driven I can adapt in advance.
Protocol needs to be extended to provide fixed costs and linear sizes required.
What if we consume very little memory? What in the case of grsmyr, which consumes O(1) memory?
Upper bound could easily be numCU_4_64*N on GCN.
Similar for lower bound, but I might want to force that only for algorithms which are not memory-hard. How do I evaluate that property? Several possibilities. Be sure to not end up like in the beginning, when the upper bound eventually turned out to be too little.
Interacts with #31.
It has been reported the "sent first share" popup does not appear when using P2P, even though the node reports shares being sent (?).
See user report. I'm lucky I got one doing copypaste.
Several things wrong here:
Current plan of action upgrade my current driver OpenCL 2.0 AMD-APP (1912.5)
to user OpenCL 2.0 AMD-APP (2004.6)
, hope and pray incompatibility can be reproduced.
Currently, one has to enable monitor before connecting to it.
It is unnecessarily redundant. I can just auto-open this on need so in most of the time only 1 click is required. Users wanting to only open can just close the browser window instead.
Trying to connect will cause M8M to hang with connection reset. This is clearly not the correct thing to do (as it will prevent the user from understanding the problem).
Perhaps more interestingly, sometimes connection browser->web monitor will suceed, work unbelievably slow and hang more or less at random (likely connection to remote server times out?).
This has been first observed on 0.0.520 but very likely affects all previous versions as well.
Interacts with #5.
See http://devgurus.amd.com/thread/170098
A new work dispatch method is being deployed; this is to mark as known issue.
See user report.
Why is that happening? KnownHardware already includes Tonga.
Hopefully not some string mismatch.
It seems a certain Intel driver exposes a CL platform with only CPU as a device.
This will likely cause platform enumeration to fail with CL_DEVICE_NOT_FOUND as I only enumerate GPUs, which are not available in that configuration.
After a few hours of mining, cannot connect to monitor (note: can connect to admin once).
Browser fails to connect. The icon does not turn to green 'listening' state and the context menu does not allow to close, as the monitor is apparently not even opened.
As a coincidence, it was running with console output and shares are still being sent to pool.
First observed in 0.1.896 beta.
If a fatal error occurs while the menu is open the main thread will never exit as (realistically) the menu listener thread is locked. I'd have to cancel it in some way.
An user reports miner cannot connect to the blocks factory qubit pool.
http://dgb-qubit.theblocksfactory.com/
Initial testing suggests the pool uses a slightly different protocol for authorize.
For example it could be reported as
Cumulated activity time: ~-100472462:43:03 (-361700860617 s)
For some reason, this didn't happen up to 929.
As expected, the seconds decrement instead of incrementing (..617,...616,...615...).
The "readable" count seems to go ok but of course it's counting in the wrong direction.
On rare occasions, exiting the miner using the context menu will cause application to crash.
This has been slightly investigated. It seems the error arises from the miner->onIterationCompleted
callback (M8MMiningApp.cpp), calling IterationCompleted
. It is speculated the structures are used after destruction as they are not protected from async destruction.
Note: the lack of protection is by design. The expected behavior was to terminate all mining threads before destroying the supporting structures. It is therefore obvious this isn't working as expected.
It's quite simple: StartParams::ParseParam is never called.
This happened as 801 was originally planned to integrate proper controls for #12 and testing the parameters was supposed to happen here.
MYR integration has been deferred to a future release but I forgot to include test parameter fetching.
The shipped kernels had some issues with synchronization which made them incompatible with VLIW hardware. This was considered not an issue so far but...
It seems the new driver compiles differently, resulting in synchronization issues.
Initial investigation confirmed Luffa, CubeHash, SHAVite3, SIMD are correct.
It seems ECHO breaks somewhere after the AES lookup.
This problem manifests itself as two main symptoms:
It has been reported M8M (unclear which build, possibly 801) fails to link to CL DLL.
It is suspected this happens using newer drivers as the old clCreateCommandQueue is deprecated in CL2.0. In theory I should be using clCreateCommandQueueWithProperties but I'm a bit late with the driver versions.
A couple of days ago, a new VHQL driver has been released. New version will transition to updated CL2 library.
As a side note: no CL2 features are going to be used as I have no CL2 hardware.
The miner thread currently pushes work as hard as possible until all hashing tasks signal to be on a "wait for data transfer" stage.
Those signals are pooled in a single set used to sleep.
Unfortunately, this is not a valid operation when wait events come from different contexts. This causes wait to fail which in turn causes core usage go 100%.
A context is internal to each platform so this issue cannot be easily solved.
Possible solutions include:
Latter 2 would need to be better investigated.
In the end, this does not seem to be something I want to support, much less implement soon.
This is interesting.
Originally, M8M set difficulty every time the pool set a new mining.notify
message. I never fully understand why that would be the case and at the time many users reported lots of rejects.
A new communication channel was deployed to allow update of diff ASAP.
Apparently, the original way of doing things was the correct one.
Rant: I am surprised this is the case as the server would be required to track the requested difficulty instead of just pretending the client to comply right away... go figure! Will hopefully be fixed in next release (current is 929).
Albeit only GCN is supported, worth noticing.
22 VLIW4 CU @ 840Mhz seem to be much slower than 7750@850. Besides, they do not produce the correct nonces, even though they produce extremely high hashrate (~1800 khs).
Suspect: missing an LDS barrier somewhere.
Interesting: pulling out cards seems to reduce reject rates by the same proportions.
Could I be wrongly replicating the starting nonce offset? Possible but then the question would be: why cannot I detect this when using the replicated debug device?
Very interesting.
Reported: "922725 H/s"
That should have truly been 922 kH/s.
A major issue with per-gpu support is that the API does not guarantee any device ordering nor it is possible to reconstruct it portably (apparently GPUs don't have a unique ID stamped in each chip/card).
This however is not really a problem as long as I just take the currently enumerated devices and tweak them.
How to reproduce: start M8M with no config file. Open the admin wizard. Leave everything here.
After a while, M8M will "give up" due to lack of stratum traffic.
Most simply demonstrated by looking at con out:
[14:41:59] Accepted 8243e331 Diff 1.965/1.920 GPU 0
[14:41:59] Accepted 571b2624 Diff 2.939/1.920 GPU 0
[14:42:24] Accepted 7b047129 Diff 2.081/1.920 GPU 0
[14:42:57] Rejected 578b1ff2 Diff 2.924/1.920 GPU 0
[14:44:25] Rejected 268996c1 Diff 6.643/1.920 GPU 0
[14:44:25] Rejected 0fbfad0e Diff 16.26/1.920 GPU 0
[14:44:25] Rejected 2c013399 Diff 5.817/1.920 GPU 0
[14:44:25] Rejected 35319023 Diff 4.813/1.920 GPU 0
Pool "MYR-qubit-m4f" DISCONNECTED!
Pool "MYR-qubit-m4f" connecting.
Pool "MYR-qubit-m4f" DISCONNECTED!
Also: it has been observed pool state is not evolved correctly (number of activations, total active time) after this happens.
It has been reported 801 is slightly slower than 0.0.520.
This is likely to be due to the contrived way I had to deploy to manage heterogeneous hardware waiting for completeness.
520 had #13 in which the slowest device would dictate how often often work was dispatched to the devices. In practice, fast devices would sleep until the slow device completed. They would then get equally sized work. This is due to how clWaitForEvents
works (also see #5 and ultimately http://devgurus.amd.com/thread/170098).
A lot of effort was spent investigating a way to monitor event completeness. None was adeguately reliable/performing/maintenable/elegant. The solution employed in 801 is to have a set of threads to wake up on need. This obviously introduces scheduling latency in a blocking manner.
Possible solutions:
(2) is the whole point of the recent refactoring and continuing on that directions seems the most natural thing to do. Main issue is it hides the dirt instead of getting the rid of it.
There's this user running a rig with 4 7990 vidcards, making up for 8 GPUs @ 600/1000MHz.
Leaving aside the hashrate is easily 4x lower than expected, this bug is about:
after init,
icon turns yellow block and reports "Mining process is having issues".
This is due to building the kernels in way too much time. 801 uses a watchdog-based monitoring approach. It was assumed no system would take so much time in initializing.
It is obvious this assumption proved to be false. Albeit this particular system is not in the target demographics, the reported bug can affect intended users.
The mining process will eventually start (at reduced performance) but the block will stay yellow. "yellow" could truly be correct or not; it has to be investigated as well.
Max image 2D height: 16384
Max image 3D width: 2048
Max image 3D height: 2048
Max image 3D depth: 2048
Max samplers within kernel: 16
Max size of kernel argument: 1024
Alignment (bits) of base address: 2048
Minimum alignment (bytes) for any datatype: 128
Single precision floating point capability
Denorms: No
Quiet NaNs: Yes
Round to nearest even: Yes
Round to zero: Yes
Round to +ve and infinity: Yes
IEEE754-2008 fused multiply-add: Yes
Cache type: Read/Write
Cache line size: 64
Cache size: 16384
Global memory size: 3221225472
Constant buffer size: 65536
Max number of constant args: 8
Local memory type: Scratchpad
Local memory size: 32768
Kernel Preferred work group size multiple: 64
Error correction support: 0
Unified memory for Host and Device: 0
Profiling timer resolution: 1
Device endianess: Little
Available: Yes
Compiler available: Yes
Execution capabilities:
Execute OpenCL kernels: Yes
Execute native function: No
Queue properties:
Out-of-Order: No
Profiling : Yes
Platform ID: 00007FFC73B1CFB0
Name: Tahiti
Vendor: Advanced Micro Devices, Inc.
Device OpenCL C version: OpenCL C 1.2
Driver version: 1445.5 (VM)
Profile: FULL_PROFILE
Version: OpenCL 1.2 AMD-APP (1445.5)
Extensions: cl_khr_fp64 cl_amd_fp64 cl_khr_
global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int3
2_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_
khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store
cl_khr_gl_sharing cl_ext_atomic_counters_32 cl_amd_device_attribute_query cl_amd
_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_d3d1
0_sharing cl_khr_d3d11_sharing cl_khr_dx9_media_sharing cl_khr_image2d_from_buff
er cl_khr_spir cl_khr_gl_event
Device Type: CL_DEVICE_TYPE_GPU
Vendor ID: 1002h
Board name: AMD Radeon HD 7900 Series
Device Topology: PCI[ B#15, D#0, F#0 ]
Max compute units: 32
Max work items dimensions: 3
Max work items[0]: 256
Max work items[1]: 256
Max work items[2]: 256
Max work group size: 256
Preferred vector width char: 4
Preferred vector width short: 2
Preferred vector width int: 1
Preferred vector width long: 1
Preferred vector width float: 1
Preferred vector width double: 1
Native vector width char: 4
Native vector width short: 2
Native vector width int: 1
Native vector width long: 1
Native vector width float: 1
Native vector width double: 1
Max clock frequency: 1000Mhz
Address bits: 32
Max memory allocation: 1073741824
Image support: Yes
Max number of images read arguments: 128
Max number of images write arguments: 8
Max image 2D width: 16384
Max image 2D height: 16384
Max image 3D width: 2048
Max image 3D height: 2048
Max image 3D depth: 2048
Max samplers within kernel: 16
Max size of kernel argument: 1024
Alignment (bits) of base address: 2048
Minimum alignment (bytes) for any datatype: 128
Single precision floating point capability
Denorms: No
Quiet NaNs: Yes
Round to nearest even: Yes
Round to zero: Yes
Round to +ve and infinity: Yes
IEEE754-2008 fused multiply-add: Yes
Cache type: Read/Write
Cache line size: 64
Cache size: 16384
Global memory size: 3221225472
Constant buffer size: 65536
Max number of constant args: 8
Local memory type: Scratchpad
Local memory size: 32768
Kernel Preferred work group size multiple: 64
Error correction support: 0
Unified memory for Host and Device: 0
Profiling timer resolution: 1
Device endianess: Little
Available: Yes
Compiler available: Yes
Execution capabilities:
Execute OpenCL kernels: Yes
Execute native function: No
Queue properties:
Out-of-Order: No
Profiling : Yes
Platform ID: 00007FFC73B1CFB0
Name: Tahiti
Vendor: Advanced Micro Devices, Inc.
Device OpenCL C version: OpenCL C 1.2
Driver version: 1445.5 (VM)
Profile: FULL_PROFILE
Version: OpenCL 1.2 AMD-APP (1445.5)
Extensions: cl_khr_fp64 cl_amd_fp64 cl_khr_
global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int3
2_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_
khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store
cl_khr_gl_sharing cl_ext_atomic_counters_32 cl_amd_device_attribute_query cl_amd
_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_d3d1
0_sharing cl_khr_d3d11_sharing cl_khr_dx9_media_sharing cl_khr_image2d_from_buff
er cl_khr_spir cl_khr_gl_event
Device Type: CL_DEVICE_TYPE_GPU
Vendor ID: 1002h
Board name: AMD Radeon HD 7900 Series
Device Topology: PCI[ B#15, D#0, F#0 ]
Max compute units: 32
Max work items dimensions: 3
Max work items[0]: 256
Max work items[1]: 256
Max work items[2]: 256
Max work group size: 256
Preferred vector width char: 4
Preferred vector width short: 2
Preferred vector width int: 1
Preferred vector width long: 1
Preferred vector width float: 1
Preferred vector width double: 1
Native vector width char: 4
Native vector width short: 2
Native vector width int: 1
Native vector width long: 1
Native vector width float: 1
Native vector width double: 1
Max clock frequency: 1000Mhz
Address bits: 32
Max memory allocation: 1073741824
Image support: Yes
Max number of images read arguments: 128
Max number of images write arguments: 8
Max image 2D width: 16384
Max image 2D height: 16384
Max image 3D width: 2048
Max image 3D height: 2048
Max image 3D depth: 2048
Max samplers within kernel: 16
Max size of kernel argument: 1024
Alignment (bits) of base address: 2048
Minimum alignment (bytes) for any datatype: 128
Single precision floating point capability
Denorms: No
Quiet NaNs: Yes
Round to nearest even: Yes
Round to zero: Yes
Round to +ve and infinity: Yes
IEEE754-2008 fused multiply-add: Yes
Cache type: Read/Write
Cache line size: 64
Cache size: 16384
Global memory size: 3221225472
Constant buffer size: 65536
Max number of constant args: 8
Local memory type: Scratchpad
Local memory size: 32768
Kernel Preferred work group size multiple: 64
Error correction support: 0
Unified memory for Host and Device: 0
Profiling timer resolution: 1
Device endianess: Little
Available: Yes
Compiler available: Yes
Execution capabilities:
Execute OpenCL kernels: Yes
Execute native function: No
Queue properties:
Out-of-Order: No
Profiling : Yes
Platform ID: 00007FFC73B1CFB0
Name: Tahiti
Vendor: Advanced Micro Devices, Inc.
Device OpenCL C version: OpenCL C 1.2
Driver version: 1445.5 (VM)
Profile: FULL_PROFILE
Version: OpenCL 1.2 AMD-APP (1445.5)
Extensions: cl_khr_fp64 cl_amd_fp64 cl_khr_
global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int3
2_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_
khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store
cl_khr_gl_sharing cl_ext_atomic_counters_32 cl_amd_device_attribute_query cl_amd
_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_d3d1
0_sharing cl_khr_d3d11_sharing cl_khr_dx9_media_sharing cl_khr_image2d_from_buff
er cl_khr_spir cl_khr_gl_event
Device Type: CL_DEVICE_TYPE_CPU
Vendor ID: 1002h
Board name:
Max compute units: 8
Max work items dimensions: 3
Max work items[0]: 1024
Max work items[1]: 1024
Max work items[2]: 1024
Max work group size: 1024
Preferred vector width char: 16
Preferred vector width short: 8
Preferred vector width int: 4
Preferred vector width long: 2
Preferred vector width float: 8
Preferred vector width double: 4
Native vector width char: 16
Native vector width short: 8
Native vector width int: 4
Native vector width long: 2
Native vector width float: 8
Native vector width double: 4
Max clock frequency: 3016Mhz
Address bits: 64
Max memory allocation: 4281098240
Image support: Yes
Max number of images read arguments: 128
Max number of images write arguments: 8
Max image 2D width: 8192
Max image 2D height: 8192
Max image 3D width: 2048
Max image 3D height: 2048
Max image 3D depth: 2048
Max samplers within kernel: 16
Max size of kernel argument: 4096
Alignment (bits) of base address: 1024
Minimum alignment (bytes) for any datatype: 128
Single precision floating point capability
Denorms: Yes
Quiet NaNs: Yes
Round to nearest even: Yes
Round to zero: Yes
Round to +ve and infinity: Yes
IEEE754-2008 fused multiply-add: Yes
Cache type: Read/Write
Cache line size: 64
Cache size: 32768
Global memory size: 17124392960
Constant buffer size: 65536
Max number of constant args: 8
Local memory type: Global
Local memory size: 32768
Kernel Preferred work group size multiple: 1
Error correction support: 0
Unified memory for Host and Device: 1
Profiling timer resolution: 339
Device endianess: Little
Available: Yes
Compiler available: Yes
Execution capabilities:
Execute OpenCL kernels: Yes
Execute native function: Yes
Queue properties:
Out-of-Order: No
Profiling : Yes
Platform ID: 00007FFC73B1CFB0
Name: Intel(R) Core(TM) i7-377
0K CPU @ 3.50GHz
Vendor: GenuineIntel
Device OpenCL C version: OpenCL C 1.2
Driver version: 1445.5 (sse2,avx)
Profile: FULL_PROFILE
Version: OpenCL 1.2 AMD-APP (1445.5)
Extensions: cl_khr_fp64 cl_amd_fp64 cl_khr_
global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int3
2_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_
khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store
cl_khr_gl_sharing cl_ext_device_fission cl_amd_device_attribute_query cl_amd_vec
3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_d3d10_sh
aring cl_khr_spir cl_amd_svm cl_khr_gl_event
(One question is why the user clipped off the head of the output... perhaps he just didn't know about output redirection, that's curious).
It's a known issue. They haven't been upgraded to the new protocol version.
The new architecture deployed by 02f731c is way more flexible, odds are I'll have to re-think a few things.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.