AMD - 4xxx and up. Nvidia - 8xxx and up. On Windows you can use 'GPU Caps Viewer' or similar.

Q: I am seeing 'pyopencl.LogicError: clGetPlatformIDs failed', what is this?Q: It says 'ImportError: DLL load failed: The specified module could not be found'?Q: Or 'ImportError: DLL load failed: The specified procedure could not be found'?

You don't have proper OpenCL support. The reasons may vary. Be sure to remove any old drivers and SDK from different vendors you may have used. Use web search to see how to make it work for your combination of GPU and OS.

Q: When I try to run it with the following parameters: '--host=http://mining.bitcoin.cz:8332' miner errors out with 'nonnumeric port'

Remove 'http://', it's intended for browsers (becames '--host=mining.bitcoin.cz'). Use '--port' to specify port (default is 8332 so you don't need to specify it if the pool you use is at same port).

Q: Why it uses 100% CPU?

You probably selected the CPU as OpenCL device. Or you are using it on Linux with AMD Stream SDK 2.2. Use 2.1 instead.

Q: What does 'invalid or stale' means?

The block last submitted was either invalid or stale.

Q: How a block becomes stale?

You submited solution for a block which was just solved by someone else.

Q: Why a block is invalid?

Don't overclock too much. And switch crossfire off. Or may be I screwed the search again? It's good if you see more 'accepted's than 'invalid's.

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.

It's console application. You use that ugly black thing called 'Command Prompt' to run it.

I hope someone will try this wonderful OpenCL bitcoin miner. It uses PyOpenCl. Should be generally platform independent. The OpenCL kernel uses previous work by laszlo. You will need bitcoin patched with this to enable RPC getwork(). You may use as many external miners as you wish (if running RPC with -rpcallowip).

Have fun.

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.

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.

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.

jgarzik: I tested this against vanilla client to be sure blocks are actually accepted. On ATI 4350 it makes ~5800 khash/s.

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.

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.

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).

don't have an ATI card, but even after reading those performance-infos i still can't believe that 980something-mega-hash.

5.800khash 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.

don't have an ATI card, but even after reading those performance-infos i still can't believe that 980something-mega-hash.

5.800khash 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.

There's a lot more than GFlops to this equation. Memory bandwidth, for one, will be very important.

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.