Boolean: Difference between revisions

Jump to navigation Jump to search
8 bytes added ,  08:55, 10 January 2020
m
m (3 revisions imported: Migrate from miraheze)
Line 91: Line 91:
* [[Dyalog '08]] (05): [[Roger Hui]], [https://dyalog.tv/Dyalog08/?v=k8Wt5sDDzgI "Performance Improvements in Dyalog: A Case Study"]
* [[Dyalog '08]] (05): [[Roger Hui]], [https://dyalog.tv/Dyalog08/?v=k8Wt5sDDzgI "Performance Improvements in Dyalog: A Case Study"]
* [[Dyalog '16]] U08: [[Bob Bernecky]], [https://dyalog.tv/Dyalog16/?v=G2g13YKjWes "A Compendium of SIMD Boolean Array Algorithms in APL"]
* [[Dyalog '16]] U08: [[Bob Bernecky]], [https://dyalog.tv/Dyalog16/?v=G2g13YKjWes "A Compendium of SIMD Boolean Array Algorithms in APL"]
* [[Dyalog '17]] D08: Marshall Lochbaum, [https://dyalog.tv/Dyalog17/?v=2KnrDmZov4U "Moving Bits Faster in Dyalog 16.0"]
* [[Dyalog '17]] D08: [[Marshall Lochbaum]], [https://dyalog.tv/Dyalog17/?v=2KnrDmZov4U "Moving Bits Faster in Dyalog 16.0"]
* Dyalog Blog: Marshall Lochbaum, [https://www.dyalog.com/blog/2018/06/expanding-bits-in-shrinking-time/ "Expanding Bits in Shrinking Time"]
* Dyalog Blog: [[Marshall Lochbaum]], [https://www.dyalog.com/blog/2018/06/expanding-bits-in-shrinking-time/ "Expanding Bits in Shrinking Time"]


Because they are so small relative to CPU registers, Booleans can make [[wikipedia:SIMD|SIMD]] (Single Instruction Multiple Data) techniques viable even in processors with no dedicated SIMD unit. Programming in this way is called [[wikipedia:SWAR|SWAR]] (SIMD Within a Register), and is considerably easier when working with bit Booleans than when working with integers. Most processors now have SIMD registers and instructions, and the highest levels of Boolean optimization usually require using these instructions. However, Boolean SWAR programming can still be useful to develop algorithms which are fast (often beating dedicated SIMD optimizations on byte-sized data) while remaining architecture independent.
Because they are so small relative to CPU registers, Booleans can make [[wikipedia:SIMD|SIMD]] (Single Instruction Multiple Data) techniques viable even in processors with no dedicated SIMD unit. Programming in this way is called [[wikipedia:SWAR|SWAR]] (SIMD Within a Register), and is considerably easier when working with bit Booleans than when working with integers. Most processors now have SIMD registers and instructions, and the highest levels of Boolean optimization usually require using these instructions. However, Boolean SWAR programming can still be useful to develop algorithms which are fast (often beating dedicated SIMD optimizations on byte-sized data) while remaining architecture independent.

Navigation menu