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.
