is it legal "__assume_aligned((NULL),MY_ALIGNED_MEMORY_ALIGN)"

Is it legal "__assume_aligned((NULL),MY_ALIGNED_MEMORY_ALIGN)" when "MY_ALIGNED_MEMORY_ALIGN" is "sizeof(__m256)"?

I have various configurations on program startup, when user can choose using FLOAT(23bit), FLOAT(64bit), or FLOAT(128bit on x64).

Therefore some of variables, e.g. when user chooses FLOAT(64), therefore FLOAT(32) (and FLOAT128) will be NULL, and my question is what ICC will do when "__assume_aligned((" will be NULL. i.e. crash or ignored NULL value?

__assume_aligned(x) in a for loop

#   define MY_ALIGNED_MEMORY_ALIGN  sizeof(__m256)  /* _mm_malloc align [bytes] */
#   define MY_ASSUME_ALIGNED(x)     __assume_aligned((x),MY_ALIGNED_MEMORY_ALIGN)

for(auto& i1:packets) {

"packets" is std::vector<> of structure with "left" and "right" float pointers, suitable for vectorization.

Isn't this give an overhead for this "for" loop when I just only want to give compiler a hint that pointers are aligned?

cpuinfo output from system call different


I'm using Intel MPI 5.0 and am making a system call inside my fortran program and it returns different values depending on the env. variable I_MPI_PIN_DOMAIN. Why is that? How do I make it give consistent output?

Sample Fortran (Intel Fortran 13.1) program that can reproduce this:

        Program tester

        call system("cpuinfo|grep 'Packages(sockets)'|
     &                          tr -d ' '|cut -d ':' -f 2")



$ mpirun -genv I_MPI_PIN_DOMAIN node -np 1 ./a.out


Thread local calculation of reducers?


I wonder how reducers work internally. So if a value is set into a reducer, does it block other threads each time a value is set?

I ask because normally I'm creating a local 'reducer', e.g. a local histogram on an image tile and on leaving the thread all the data is pushed at once into the global reducer. Just like local memory operations in OpenCL.

Linker errors

Guys, I'm working now with Unreal Engine 4, and source code compiles perfectly!!! with Visual Studio compiler (cl.exe).

The same source code couldn't compile with your newest intel c++.There were 2 minor issues, one that intel's compiler didn't recognize default ctor where in fact the default ctor was present. Link to that question:

Second error was really irrelevant:

OpenCL compiler bugs

As part of a research project on finding bugs in multi- and many-core compilers, my team have found what we believe are some bugs in the Intel OpenCL 2.0 SDK compiler.

Would Intel be interested in receiving these bug reports?  If so, how do you like to receive them?

Best wishes

Alastair Donaldson

if ( i .gt. 1 .and. x(i-1) .gt. 5.0 )

The new compiler prompts error when executing the following statements, which worked on very old MS Power Station:

do i=1,10

if ( i .gt. 1 .and. x(i-1) .gt. 5.0 ) then

write(*,*) i, x(i-1)

end if

end do

In the first loop, i=1, x(i-1) = x(0) --> Error, subscript zero

According to the Fortran Logical .and. rule, it evaluates from Left to Right,

Windows su una scheda Galileo

Quello che ci domanderemo oggi sarà come inizializzare la scheda Galileo "classica" con l'immagine di Windows.

In questa guida le parti in corsivo saranno commenti mentre quelle dentro alle parentesi quadre saranno consigli per i meno esperti.

  • Sviluppatori
  • Microsoft Windows* (XP, Vista, 7)
  • Microsoft Windows* 8
  • Internet degli oggetti
  • Principiante
  • Intermedio
  • microsoft windows
  • Intel Internet of Things
  • Intel Galileo Board
  • Sensori
  • Internet degli oggetti
  • Iscriversi a Sviluppatori