@@ -610,11 +610,31 @@ by the handle with the `Interpolation::Bezier` mode).
610
610
< https://twitter.com/wodannson/status/1180871977495617536 >
611
611
< https://twitter.com/wodannson/status/1179698233737650176 >
612
612
613
- ### ultraviolet
613
+ ### [ ultraviolet]
614
614
615
- ** TODO ** : img ( benches? )
615
+ ![ ultraviolet benchmarks table ] ( /assets/newsletter-003/ultraviolet- benches.png )
616
616
617
- < https://www.reddit.com/r/rust/comments/dpknd1/ultraviolet_a_crate_to_do_lots_of_linear_algebra >
617
+ [ ultraviolet] by [ @termhn ] is a crate to do basic, computer-graphics-related,
618
+ linear algebra, but fast, by taking full advantage of [ SIMD] .
619
+
620
+ > <...> To do this, it uses an "SoA" ([ Structure of Arrays] [ aos_soa ] )
621
+ > architecture such that each Wec (wide-vec) actually contains the data
622
+ > for 4 Vecs and will do any operation on all 4 of the vector 'lanes'
623
+ > at the same time.
624
+ > Doing this is potentially much (factor of 10) faster than
625
+ > an "AoS" ([ Array of Structs] [ aos_soa ] ) layout,
626
+ > as all current Rust linear algebra libraries do, depending on your work load.
627
+ > However, algorithms must be carefully architected
628
+ > to take full advantage of this, and doing so can be easier said than done,
629
+ > especially if your algorithm involves significant branching.
630
+
631
+ _ Discussions:
632
+ [ /r/rust] ( https://reddit.com/r/rust/comments/dpknd1/ultraviolet_a_crate_to_do_lots_of_linear_algebra ) _
633
+
634
+ [ ultraviolet ] : https://github.com/termhn/ultraviolet
635
+ [ @termhn ] : https://twitter.com/termhn
636
+ [ SIMD ] : https://en.wikipedia.org/wiki/SIMD
637
+ [ aos_soa ] : https://en.wikipedia.org/wiki/AoS_and_SoA
618
638
619
639
### This month in rustsim #8 (August − September - October 2019)
620
640
0 commit comments