<p>David Perry answer is solid I would just add that what will make NVidia cards more competitive isn't changing bitcoin or making an alternative but instead market forces will force NVidia to improve integer performance.</p>

<p>Nvidia is well aware their integer performance is abysmall and each generation AMD pulls further ahead.   In the past this wasn't very important because floating point math is used for graphics, physics, and most high performance computing work.  Still abysmal integer performance is a weak point in their lineup and as GPGPU becomes more mainstream it will matter more and more.  Over time expect GPGPU solutions for everything from speeding up SSL handshakes to whole hard drive encryption.  Unless Nvidia simply want to hand the entire crypto market to AMD on a silver platter they will be forced to improve integer performance.  How they do this isn't really material (unless you work for NVidia), market forces will require NVidia to do so or they face declining marketshare.</p>

CC BY-SA 3.0
2011-10-17T01:08:07.433Z
Nvidia and AMD are just different schools of design. Nvidia focuses on the power of each individual stream processor while AMD focuses on the quantity of processors on-die. From the standpoint of actual graphics performance, I personally prefer Nvidia cards.
David Perry
CC BY-SA 3.0
2011-10-17T14:03:48.543Z
I agree however NVidia will need to improve integer performance somehow. They may use complex shaders and invent instructions that can perform more complex integer work (bunldeds of existing OpenCL opcodes) or they may make their shaders slightly less complex or may improve internal integer handling. My hypothesis is that GPGPU cryptography acceleration will become more common in the future.  Everything from winzip to SSL to whole hard drive encryption to password stretching could be accelerated via GPU. NVidia risks losing marketshare without comptitive integer performance.
DeathAndTaxes
CC BY-SA 3.0
2011-10-17T14:26:34.483Z
I agree they will probably need to address their integer performance issues in the future, the point I was trying to make is that an Nvidia card with lots of stream processors and high integer performance would be an exception to the rule - it's just not Nvidia's style, they prefer to have a few high-end processors while AMD prefers many low-end.
David Perry
CC BY-SA 3.0
2011-10-17T14:42:52.537Z
Agreed.  It is a deep philosphical split.  Prior to unified shaders both companies card were very similar.  When unified shaders were introduced both companies took radically different directions.  As you indicated AMD went with "more is more" model and NVidia went with "quality over quantity" model. Still AMD next gen architecture will use slightly more complex shaders (although not as complex as NVidia) to improve die efficiency.  It is possible (although I have no evidence to support it) that we will see a move to the center by both companies as GPGPU architectures develop.
DeathAndTaxes
CC BY-SA 3.0
2011-10-16T05:03:05.583Z
2011-10-16T22:57:10.593Z
2011-10-16T22:57:10.593Z
DeathAndTaxes
<p>The specific reason that AMD cards are more efficient for Bitcoin mining is twofold and the answer to this question depends on both reasons:</p>

<ol>
<li>AMD GPUs tend to have lower-end ALUs but make up for this by packing more ALUs onto the card overall. For most hash algorithms this is preferable.</li>
<li>AMD GPUs uses ALUs which can perform the 32-bit integer right rotate operation in a single instruction - Nvidia's ALUs take three processor cycles to perform the same operation. SHA256 uses this operation heavily, therefore Bitcoin mining uses this operation heavily.</li>
</ol>

<p>Combining the two reasons above results in an overall 3x-5x faster generation of SHA256 checksums. <strong>However</strong> the two effects are not equal: Effect 1 leads to approximately 2x-3x Nvidia's performance all on its own, with Effect 2 accounting for about 1.7x performance advantage. Even if you were to choose a hashing algorithm that made less use of the BIT_ALIGN_INT instruction AMD cards would still be 2x-3x faster for hashing algorithms in general. This is because such algorithms are explicitly designed to be simple binary operations which AMD's simple ALUs can handle just as well as Nvidia's more complex ALUs.</p>

<p>In order to choose an algorithm which would perform better on Nvidia cards than AMD cards, you would not only have to eliminate scenarios such as #2 above where a specific instruction happens to be better implemented on one card than the other, you would also have to choose an algorithm with math complex enough that Nvidia's higher-end ALUs get the chance to individually shine. To my knowledge no such algorithm exists.</p>

<p>To back up my statements, here is some example data from <a href="http://hashcat.net/oclhashcat/" rel="nofollow noreferrer">oclHashcat</a>'s web site. The table below compares actual performance measurements from similarly priced AMD and Nvidia cards for the MD5, SHA1, MD4, NTLM and SHA256 algorithms, among others.</p>

<p><img src="https://i.sstatic.net/SfhlU.png" alt="oclHashcat performance table"></p>

<p>Keep in mind that in comparing PC1/2 and PC3/4 that the Nvidia cards actually have higher clock speeds in both cases and still perform worse. In no case did Nvidia's performance approach the performance of a similarly priced AMD card, and to my knowledge no currently implemented algorithm performs sufficiently complex mathematics to make use of the more advanced ALUs on Nvidia's cards.</p>

<p>In short, Nvidia cards are like a small room with several fairly intelligent people, each capable of complex mathematics while AMD's cards are like a sweatshop. Hash algorithms are the computing equivalent of mass-producing name-brand tennis shoes and so the AMD "sweatshop" card will always outperform.</p>

CC BY-SA 3.0
2011-10-15T00:24:07.107Z
And before someone asks me to add to the ridiculous analogy: A CPU is like a Nobel laureate with an un-measurable IQ sitting in an office by himself. If asked to sew a pair of tennis shoes he'll spend the next three hours at a whiteboard mathematically proving that shoes exist.
David Perry
CC BY-SA 3.0
2011-10-15T00:03:11.237Z
2011-10-15T00:03:11.237Z
David Perry
<p>Currently the best graphics cards to mine Bitcoins are all AMDs. What should be changed in the Bitcoin protocol to make the alternative version of Bitcoins better mined by NVIDIA graphics cards? Could there be a protocol that would support both of the graphics cards produces in more or less equal way?</p>

CC BY-SA 3.0
2011-10-16T19:25:34.347Z
The bitcoin protocol should not be changed to make NVIDIA happy.
eldentyrell
CC BY-SA 3.0
2011-10-16T19:59:35.620Z
Agreed, I was just wondering if an alternative currency could be designed to use NVIDIAs.
ThePiachu
<proof-of-work><mining-hardware><gpu-mining><mining-software>
Bitcoin alternative designed for NVIDIA
ThePiachu
# Bitcoin alternative designed for NVIDIA

(Asked by: username_0 on 2011-10-14)

Currently the best graphics cards to mine Bitcoins are all AMDs. What should be changed in the Bitcoin protocol to make the alternative version of Bitcoins better mined by NVIDIA graphics cards? Could there be a protocol that would support both of the graphics cards produces in more or less equal way?

**Tags:** proof-of-work, mining-hardware, gpu-mining, mining-software

> **Comments:**
> **username_1**: The bitcoin protocol should not be changed to make NVIDIA happy.  
> **username_0**: Agreed, I was just wondering if an alternative currency could be designed to use NVIDIAs.  

---

## 2 answers

### Answer by username_3 on 2011-10-15. Score: 18 | Accepted answer

The specific reason that AMD cards are more efficient for Bitcoin mining is twofold and the answer to this question depends on both reasons:

1. AMD GPUs tend to have lower-end ALUs but make up for this by packing more ALUs onto the card overall. For most hash algorithms this is preferable.
2. AMD GPUs uses ALUs which can perform the 32-bit integer right rotate operation in a single instruction - Nvidia's ALUs take three processor cycles to perform the same operation. SHA256 uses this operation heavily, therefore Bitcoin mining uses this operation heavily.

Combining the two reasons above results in an overall 3x-5x faster generation of SHA256 checksums. **However** the two effects are not equal: Effect 1 leads to approximately 2x-3x Nvidia's performance all on its own, with Effect 2 accounting for about 1.7x performance advantage. Even if you were to choose a hashing algorithm that made less use of the BIT\_ALIGN\_INT instruction AMD cards would still be 2x-3x faster for hashing algorithms in general. This is because such algorithms are explicitly designed to be simple binary operations which AMD's simple ALUs can handle just as well as Nvidia's more complex ALUs.

In order to choose an algorithm which would perform better on Nvidia cards than AMD cards, you would not only have to eliminate scenarios such as #2 above where a specific instruction happens to be better implemented on one card than the other, you would also have to choose an algorithm with math complex enough that Nvidia's higher-end ALUs get the chance to individually shine. To my knowledge no such algorithm exists.

To back up my statements, here is some example data from [oclHashcat](http://hashcat.net/oclhashcat/)'s web site. The table below compares actual performance measurements from similarly priced AMD and Nvidia cards for the MD5, SHA1, MD4, NTLM and SHA256 algorithms, among others.

![oclHashcat performance table](https://i.sstatic.net/SfhlU.png)

Keep in mind that in comparing PC1/2 and PC3/4 that the Nvidia cards actually have higher clock speeds in both cases and still perform worse. In no case did Nvidia's performance approach the performance of a similarly priced AMD card, and to my knowledge no currently implemented algorithm performs sufficiently complex mathematics to make use of the more advanced ALUs on Nvidia's cards.

In short, Nvidia cards are like a small room with several fairly intelligent people, each capable of complex mathematics while AMD's cards are like a sweatshop. Hash algorithms are the computing equivalent of mass-producing name-brand tennis shoes and so the AMD "sweatshop" card will always outperform.

> **Comments:**
> **username_3**: And before someone asks me to add to the ridiculous analogy: A CPU is like a Nobel laureate with an un-measurable IQ sitting in an office by himself. If asked to sew a pair of tennis shoes he'll spend the next three hours at a whiteboard mathematically proving that shoes exist.  

---

### Answer by username_2 on 2011-10-16. Score: 3

username_3 username_3 answer is solid I would just add that what will make NVidia cards more competitive isn't changing bitcoin or making an alternative but instead market forces will force NVidia to improve integer performance.

Nvidia is well aware their integer performance is abysmall and each generation AMD pulls further ahead. In the past this wasn't very important because floating point math is used for graphics, physics, and most high performance computing work. Still abysmal integer performance is a weak point in their lineup and as GPGPU becomes more mainstream it will matter more and more. Over time expect GPGPU solutions for everything from speeding up SSL handshakes to whole hard drive encryption. Unless Nvidia simply want to hand the entire crypto market to AMD on a silver platter they will be forced to improve integer performance. How they do this isn't really material (unless you work for NVidia), market forces will require NVidia to do so or they face declining marketshare.

> **Comments:**
> **username_3**: Nvidia and AMD are just different schools of design. Nvidia focuses on the power of each individual stream processor while AMD focuses on the quantity of processors on-die. From the standpoint of actual graphics performance, I personally prefer Nvidia cards.  
> **username_2**: I agree however NVidia will need to improve integer performance somehow. They may use complex shaders and invent instructions that can perform more complex integer work (bunldeds of existing OpenCL opcodes) or they may make their shaders slightly less complex or may improve internal integer handling. My hypothesis is that GPGPU cryptography acceleration will become more common in the future.  Everything from winzip to SSL to whole hard drive encryption to password stretching could be accelerated via GPU. NVidia risks losing marketshare without comptitive integer performance.  
> **username_3**: I agree they will probably need to address their integer performance issues in the future, the point I was trying to make is that an Nvidia card with lots of stream processors and high integer performance would be an exception to the rule - it's just not Nvidia's style, they prefer to have a few high-end processors while AMD prefers many low-end.  
> **username_2**: Agreed.  It is a deep philosphical split.  Prior to unified shaders both companies card were very similar.  When unified shaders were introduced both companies took radically different directions.  As you indicated AMD went with "more is more" model and NVidia went with "quality over quantity" model. Still AMD next gen architecture will use slightly more complex shaders (although not as complex as NVidia) to improve die efficiency.  It is possible (although I have no evidence to support it) that we will see a move to the center by both companies as GPGPU architectures develop.  

---

