LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Got some interesting benchmarks on To Upper vs. "Branchless Programming"

GregR you are the goat, I have seen some of your stuff on Lavag.org and just wanted to let you know you are awesome when it comes to labview. 

0 Kudos
Message 21 of 23
(57 Views)

Thanks for all your insights. I would never dig so deep in any of this. 😄

 

Over the last decades, I spend a lot of time optimizing heavy computations to use all available cores and LabVIEW did always a fantastic job. A decade ago, the parallelization advantage was exactly the number of CPU cores  (... and even slightly higher if they are hyperthreaded).

 

This has changed dramatically. Intel has P and E cores and AMD has Zen5 and Zen5c cores and the thermal management is now such that the clock adapts to the number of used cores, i.e. higher if only one core does heavy lifting and lower if all cores are in use, all to stay withing the thermal envelope. I can imagine that distributing the workload over unequal cores is not trivial for the OS.

 

An interesting comparison about the advancements can be seen in my benchmarks.

 

Back in 2012, My dual Xeon E5-2687W (2x 8 cores) was rushing  more than 100A across the fabric of each CPU (150W at 1.35A).

I recently got a HX 370 (12 cores) mini PC that cost 10% of the price but is 3x faster in single core and almost double the parallel performance and does not act as a noisy space heater.

 

I tend to limit parallelization for general use because it simple does not make a difference (and can even hurt!). The inherent parallel nature of LabVIEW allows many different things to happen at the same time and trying to suck all resources into one tiny part of the code needs a very good justification. Many algorithms cannot be parallelized anyway.

 

0 Kudos
Message 22 of 23
(51 Views)

@altenbach wrote:

Here's the full LUT:

 

altenbach_1-1762464216729.png

 

 

I assume there are some industry conventions, e.g. xFF is x9F in "uppercase". 😄


Keep in mind this map is also codepage specific. This covers codepage 1252 which is what Windows uses for English and most European languages. Other languages use different encodings where the upper half of this would be different and there is the possibility of multibyte characters. Also Mac and Linux use UTF-8 where basically all accented letters are multibyte. All this is to say that To Upper is actually a pretty complicated operation. If you are going to create your own, make sure you understand all the use cases.

Message 23 of 23
(18 Views)