View Issue Details

IDProjectCategoryView StatusLast Update
0000217Cinelerra-GG[All Projects] Featurepublic2019-05-14 12:01
ReporterAndrew-RAssigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
Status newResolutionopen 
Product Version 
Target VersionFixed in Version 
Summary0000217: Support for autovectorization where it counts.
DescriptionI incorrectly reported autovectorization worked, but those were just effects from -march=native GCC switch.
Experimenting in this area requires quite deep understanding how Cinelerra's plugins work, how modern CPU works, and how GCC can be guided into auto-vectorization mode (without hurting normal builds).

https://lists.cinelerra-gg.org/pipermail/cin/2019-February/000275.html
https://lists.cinelerra-gg.org/pipermail/cin/2019-February/000280.html
https://lists.cinelerra-gg.org/pipermail/cin/2019-February/000303.html

Steps To ReproduceUse ""-O3 -ffast-math -ftree-vectorizer-verbose=6 -mavx -msahf -mfma -fopt-info-vec-missed=missed_vec.log -march=native -mtune=native -fPIC" for x86-64 bit CPU with avx. Analyze logs, try to make it works .... :(

For me result was
color3way.C:264:27: note: not vectorized: multiple nested loops.
color3way.C:264:27: note: bad loop form.
color3way.C:269:5: note: not vectorized: control flow in loop.
color3way.C:269:5: note: bad loop form.
color3way.C:272:5: note: not vectorized: control flow in loop.
color3way.C:272:5: note: bad loop form.
color3way.C:275:5: note: not vectorized: control flow in loop.
color3way.C:275:5: note: bad loop form.
color3way.C:278:5: note: not vectorized: control flow in loop.
color3way.C:278:5: note: bad loop form.
color3way.C:281:5: note: not vectorized: control flow in loop.
color3way.C:281:5: note: bad loop form.
color3way.C:284:5: note: not vectorized: control flow in loop.
color3way.C:284:5: note: bad loop form.

Reported and discussed in russian at https://www.linux.org.ru/forum/development/14799788?lastmod=1550306032144#comment-14811800
Additional InformationI saw response and worry from GG about autovectorization making code vendor-locked (Intel vs AMD vs non-x86)
https://lists.cinelerra-gg.org/pipermail/cin/2019-February/000339.html

Still, may be someone will want to experiment....
TagsNo tags attached.

Activities

Andrew-R

Andrew-R

2019-05-14 12:01

reporter   ~0001522

example of missed_vec.log (for x86_64 case and color3way plugin)

missed_vec.log (118,428 bytes)

Issue History

Date Modified Username Field Change
2019-05-14 08:38 Andrew-R New Issue
2019-05-14 12:01 Andrew-R File Added: missed_vec.log
2019-05-14 12:01 Andrew-R Note Added: 0001522