- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This question is regarding Intel C++ Compiler 11.0 in general.
One of the new features listed is:
* Improved valarray option
Templates of array operations that enable low level hardware features to enhance application performance. No source code change required to use!
Question is: Is valarray the only template array supported that will make use of hardware features, or other well-known template array like Boost.array and multi-array supported as well?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for your response. I looked through the header and now understand that the only thing different is Intel's valarray makes use of Intel-specific math functions.
So to sum up, you would only get added performance if your code does operation on the valarray itself (i.e. *,-,+,/,tan,cos, etc)...
However, the valarray class itself doesnt help with other issues (like aligning data on cache line, or helps the ICC optimize your code)
My original question had more to do with if by using Intel valarry it would actually help the compiler optimize code better, but I guess it doesnt. I think using keyword restrict, and aligning data will probably help more.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for your response. I looked through the header and now understand that the only thing different is Intel's valarray makes use of Intel-specific math functions.
So to sum up, you would only get added performance if your code does operation on the valarray itself (i.e. *,-,+,/,tan,cos, etc)...
However, the valarray class itself doesnt help with other issues (like aligning data on cache line, or helps the ICC optimize your code)
My original question had more to do with if by using Intel valarry it would actually help the compiler optimize code better, but I guess it doesnt. I think using keyword restrict, and aligning data will probably help more.
As a note, this is taken straight out from the ICC ref man for other people's future reference:
Building Applications Using Intel Performance Headers
Building Applications Using Intel Performance Headers
The Intel compiler provides a high performance implementation of specialized valarray operations for the C++ standard valarray container.
The standard C++ valarray template consists of array or vector operations for high performance computing; these operations are designed to exploit high performance hardware features such as parallelism and achieve performance benefits. The Intel implementation of valarray, which requires installation of Intel Integrated Performance Primitives (IPP), consists of a replacement header that provides a specialized high performance implementation for the following operators and types:
operator |
valarrays of Type |
---|---|
abs, acos, asin, atan, atan2, cos, cosh, exp, log, log10, pow, sin, sinh, sqrt, tan, tanh |
float, double |
addition, subtraction, division, multiplication |
float,double |
bitwise or, and, xor |
(all unsigned) char, short, int |
min, max, sum |
signed or short/signed int, float, double |
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page