[Insight-developers] -Wover-aligned warnings on Rogue7 dashboard

Bradley Lowekamp blowekamp at mail.nih.gov
Tue May 21 11:30:40 EDT 2013


Sean,

It's for performance reasons to prevent false sharing. This was a significant bottle neck in the v3 Mattes Mutual Information metric, so it was quite worth the effort.

Is this the cause for any failing tests? Or is this just a warning, that the alignment will be ignored?

Here are some performance improvements number I posted to the developer's list for that patch:


MeanSquares:
Threads	3.2		4.2		4.2+patch	patch percentage of 3.20
1		0.3615	0.8214	0.4071		113%
2		0.3222	0.6055	0.3365		104%
4		0.3249	0.4448	0.3293		101%
8		0.1703	0.3093	0.1943		114%
12		0.1457	0.2031	0.1322		91%
24*		0.1062	0.1332	0.0949		89%

MutualInformation:
Threads	3.2		4.2		4.2+patch	patch percentage of 3.20
1		0.1467	0.6103	0.3353		228%
2		0.1036	0.3747	0.1774		171%
4		0.0847	0.2175	0.1262		149%
8		0.0655	0.1291	0.0681		104%
12		0.0551	0.1035	0.0486		88%
24*		0.0460	0.0829	0.0526		114%

*Hyperthreading


There is likely a better, and likely more complicated way to achieve the same results, which can not be done until after 4.4 release. I would object to hastily removing, this optimization.

Brad




On May 21, 2013, at 11:07 AM, Sean McBride <sean at rogue-research.com> wrote:

> Hi all,
> 
> My Rogue7 dashboard has a few warnings from clang's -Wover-aligned:
> 
> <http://open.cdash.org/viewBuildError.php?type=1&buildid=2911702>
> 
> I'm not a language lawyer, but these look legit to me.  Since I build as C++11 I fall into:
> 
> #define ITK_CACHE_LINE_ALIGNMENT 64
> 
> # define itkAlignedTypedef( alignment, oldtype, newtype )   \
>  typedef oldtype newtype alignas(alignment)
> 
> The standard says this about operator new: "The pointer returned shall be suitably aligned so that it can be converted to a pointer of any complete object type with a fundamental alignment requirement."  std::max_align_t has the strictest fundamental alignment, and, on my system anyway, it's smaller than 64.
> 
> Is ITK_CACHE_LINE_ALIGNMENT only for performance?  Maybe it should be removed?
> 
> Thanks,
> 
> -- 
> ____________________________________________________________
> Sean McBride, B. Eng                 sean at rogue-research.com
> Rogue Research                        www.rogue-research.com 
> Mac Software Developer              Montréal, Québec, Canada
> 
> 
> _______________________________________________
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
> 
> Kitware offers ITK Training Courses, for more information visit:
> http://kitware.com/products/protraining.php
> 
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-developers



More information about the Insight-developers mailing list