Live data from Hacker News

Cores that don't count

muratbuffalo.blogspot.com

11–20 of 34 posts

Re: Cores that don't count

#11

The conclusion is an utter joke: “Maybe this will lead to abondonment of complex deep-optimizing chipsets like Intel chipsets, and make simpler chipsets, like ARM chipsets, more popular for datacenter deployments.”

Why is that a joke? There's a reason why AWS is pushing Gravitron so hard (and they are pretty damn fast)

Re: Cores that don't count

#12

The conclusion is an utter joke: “Maybe this will lead to abondonment of complex deep-optimizing chipsets like Intel chipsets, and make simpler chipsets, like ARM chipsets, more popular for datacenter deployments.”

Why is that a joke? There's a reason why AWS is pushing Gravitron so hard (and they are pretty damn fast)

Why would one presume that the reason has anything to do with computation error rates, rather than something obvious and mundane like "Graviton instances are more profitable"?

Re: Cores that don't count

#13

What needs to happen is to bring ECC to all levels of a chips logic to solve this. ARM vs RISC-V vs x64 doesn't address the problem as nothing in them inherently solves the problem. Making adders that add with ECC will. If all of the logic also operates on ECC with the data, chip yields will also be improved. Say an core of the chip only produces the correct result 99% of the time, currently you have to disable that…

What leads us to believe that there is not already fault detection in execution units? We have really no idea what's going on at the gate level in CPUs.

Re: Cores that don't count

#14
post #13

What needs to happen is to bring ECC to all levels of a chips logic to solve this. ARM vs RISC-V vs x64 doesn't address the problem as nothing in them inherently solves the problem. Making adders that add with ECC will. If all of the logic also operates on ECC with the data, chip yields will also be improved. Say an core of the chip only produces the correct result 99% of the time, currently you have to disable that…

What leads us to believe that there is not already fault detection in execution units? We have really no idea what's going on at the gate level in CPUs.

i know Intel and AMD like to hide hardware features - but given the design cost and the non-negligible overhead..one would suppose that they would at least surface a counter in the documentation..and probably even...you know, market it as a feature.

Re: Cores that don't count

#15

Maybe we should run the code twice on different cpu architecures and only accept the results if they are identical. I’ve heard of high reliability environments doing this, but maybe there are cases for doing it in web/IT as well. This would help catch a large variety of possible errors, including but not limited to cpu bit flips, cpu bugs, memory errors.

Maybe, but in most situations you're probably better off adding some more developer time to work on software bugs than you are doubling your computation cost.

Re: Cores that don't count

#16

What needs to happen is to bring ECC to all levels of a chips logic to solve this. ARM vs RISC-V vs x64 doesn't address the problem as nothing in them inherently solves the problem. Making adders that add with ECC will. If all of the logic also operates on ECC with the data, chip yields will also be improved. Say an core of the chip only produces the correct result 99% of the time, currently you have to disable that…

Is there a way to add ECC into an ALU without making it massively slower?

Re: Cores that don't count

#17

What needs to happen is to bring ECC to all levels of a chips logic to solve this. ARM vs RISC-V vs x64 doesn't address the problem as nothing in them inherently solves the problem. Making adders that add with ECC will. If all of the logic also operates on ECC with the data, chip yields will also be improved. Say an core of the chip only produces the correct result 99% of the time, currently you have to disable that…

I’m fairly sure you can’t do that. For example, suppose you have logic that uses some inputs to compute an output:

  A, B ⇒ C
Add ECC bits to the inputs, and you want

  Aa, Bb ⇒ Cc
Now, if you want this to detect errors made by the “⇒” part, you can’t do this as “drop the ECC bits, compute the result, compute the ECC bits of the result”.

So, how do you compute the ECC bits from only the Aa and Bb bits without having to compute the C part?

Depending on the ECC logic chosen, that might be doable for bit shifts, but for addition? For multiplication? For IEEE float square roots?

Re: Cores that don't count

#18

Maybe we should run the code twice on different cpu architecures and only accept the results if they are identical. I’ve heard of high reliability environments doing this, but maybe there are cases for doing it in web/IT as well. This would help catch a large variety of possible errors, including but not limited to cpu bit flips, cpu bugs, memory errors.

Maybe, but in most situations you're probably better off adding some more developer time to work on software bugs than you are doubling your computation cost.

This kind of problems we're discussing and software bugs are not the same thing. A memory bit flip is not really a software bug is it

Re: Cores that don't count

#19

Maybe we should run the code twice on different cpu architecures and only accept the results if they are identical. I’ve heard of high reliability environments doing this, but maybe there are cases for doing it in web/IT as well. This would help catch a large variety of possible errors, including but not limited to cpu bit flips, cpu bugs, memory errors.

[deleted]
Post reply on HN