Binary math operations are easy to spot, as they do not look like Int math 
operations

Typically
-- AND | OR | XOR | XAND | NOT | SHIFT_L | SHIFT_R | ROTATE_L | ROTATE_R
-- RESET_REGISTER ... but this is used by Int and Float not just Binary Math 
but included for Turing State Machine reasons
-- Shift and Rotate also exist in versions without CARRY

-- https://en.wikipedia.org/wiki/Category:Digital_circuits : this really 
applies here
-- https://en.wikipedia.org/wiki/Boolean_algebra : tools of the trade
-- https://en.wikipedia.org/wiki/Boolean_algebra_(structure)
-- https://en.wikipedia.org/wiki/Bitwise_operation
-- https://en.wikipedia.org/wiki/Binary_adder : it does not operate in the 
int domain at all
-- https://en.wikipedia.org/wiki/Bit_manipulation

Unlike Int and Float math or logic, Boolean Algebra registers ARE NOT BOUND 
BY IEEE or other FLOATING POINT MATH STANDARDS
-- 256 bit wide registers : fine
-- 1024 bit wide registers : good
-- 2048 bit wide registers : hey, that's a lot of logic gates ...


Moral :

IF and ONLY IF the instruction logic uses Binary Math operations, that 
instruction set logic can be implemented in Logic Circuits that can run at 
clock speed. Logic Circuits can be made to have a 'data flow archecture', 
speeding up the instruction logic by many orders of magnitude.




MP DSN @ Home


-----Original Message----- 
From: McLeod, John
Sent: 12 August 2014 05:55
To: Max Power ; BOINC Developers Mailing [email protected]
Subject: RE: [boinc_dev] Common faulty reasoning problem in Computer Science 
: Confusing Binary Math Ops with Int Ops or Float Ops ...

I am not at all certain I understand your distinction between Binary Math 
and Integer Math.  By Binary Math do you mean control logic?  If not, what 
do you mean?

Almost all integer math can be done in machine registers now since the 
narrow machines are 32 bits (+/- 2*10^9) and wide machines are 64 bits (+/- 
9*10^18).  There are only a few kinds of calculations that have intermediate 
or final results larger than that.  It is not that hard to produce a math 
class that can do arithmetic to 128 bits - which should be sufficient for 
just about everything other than encryption.

-----Original Message-----
Subject: [boinc_dev] Common faulty reasoning problem in Computer Science : 
Confusing Binary Math Ops with Int Ops or Float Ops ...


Common faulty reasoning problem in Computer Science : Confusing Binary Math 
Ops with Int Ops or Float Ops ...

It's a layer cake

--> "allows the creation of"

[Binary Math Ops] -> [Integer Math Ops]
-- if your CPU only understands INTs
-- Floating Point can be emulated with Int Math and Binary Ops

[Binary Math Ops]
-> [Integer Math Ops]
--> [Floating Point Math Ops]

-- ^ ^ If the CPU does native Floating Point ^ ^

-- If all integer control logic is removed, Binary Math Ops go at true clock 
speed
-- Int and Float math will never really reach true clock speed, as there is 
an inherent overhead as both are based on Binary Math Ops (and Microcode 
based CPUs are worse for speed for this reason)


This is why ASICs do binary hashes so fast, yet Cray XPs struggle in massive 
parallelism to perform Floating Point at anything like real clock speed.


Moral :
When in doubt go to the fundamental underlying framework to help solve a 
problem, if no other solution is working.


MP DSN @ Home


--------------------------------------------------------------------------------

My feeling about this is that computing credit should be measure 
general-purpose FLOPs, i.e. FLOPs that are usable by most science 
applications. FFT FLOPs are not general-purpose. So the right thing would be 
for SETI@home to grant both computing credit and project-defined credit. CPU 
and GPU jobs would be granted both; jobs done by ASICs or FPGAs would be 
granted only project-defined credit.

Similarly, BU could grant computing credit for mining jobs done by CPU or 
GPU; but for ASIC jobs it would grant only project-defined credit.

Of course this is all subjective and fuzzy; you might argue that GPU FLOPs 
are not general-purpose because some apps don't map well to GPUs. But we 
need to draw a line somewhere, and I think that, with the advent of OpenCL, 
GPUs can be considered general-purpose.




_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.

Reply via email to