- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello, I think I encountered a bug in the Intel compiler 12.1.0, for the same setting GCC runs smoothly but ICC produces a segfault. Here is steps to repdocue the bug:
Test Machine:Linux:Linux 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64 GNU/LinuxCPU: 12 Core
Processor : 11vendor_id : GenuineIntelcpu family : 6model : 44model name : Intel Xeon CPU X5650 @ 2.67GHzstepping : 2cpu MHz : 2666.995cache size : 12288 KBphysical id : 1siblings : 6core id : 10cpu cores : 6apicid : 52initial apicid : 52fpu : yesfpu_exception : yescpuid level : 11wp : yesflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt aes lahf_lm ida arat tpr_shadow vnmi flexpriority ept vpidbogomips : 5333.50clflush size : 64cache_alignment : 64address sizes : 40 bits physical, 48 bits virtualprocessor : 11vendor_id : GenuineIntelcpu family : 6model : 44model name : Intel Xeon CPU X5650 @ 2.67GHzstepping : 2cpu MHz : 2666.995cache size : 12288 KBphysical id : 1siblings : 6core id : 10cpu cores : 6apicid : 52initial apicid : 52fpu : yesfpu_exception : yescpuid level : 11wp : yesflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt aes lahf_lm ida arat tpr_shadow vnmi flexpriority ept vpidbogomips : 5333.50clflush size : 64cache_alignment : 64address sizes : 40 bits physical, 48 bits virtual
ICC:icc version 12.1.0 (gcc version 4.4.5 compatibility)
Steps to run it with GCC:
Please download the Parsec-2.1 version from the websitehttp://parsec.cs.princeton.edu/. After it finished, cd to the directory pkgs/apps/raytrace/src, please make sure that cmake and gcc is installed.Compile it with:$ cmake .$ make This is the version compiled with gcc. To run it with gcc, please do the following: $ cd ../inputs$ tar xvf input_simsmall.tar$ ../src/bin/rtview happy_buddha.obj -nodisplay -automove -nthreads 1 -frames 1 -res 480 270 This runs smoothly and finishes on my machine.Now to reproduce the bug with ICC.
Steps to reproduce the bug in ICC:
Please go to the directory pkgs/apps/raytrace/src:$ cd ../src (continuing from the GCC running)Edit the CMakeCache.txt, and modify the following two lines:
CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++CMAKE_C_COMPILER:FILEPATH=/usr/bin/gcc
into:
CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/iccCMAKE_C_COMPILER:FILEPATH=/usr/bin/icc
Then go back to the command line and type :
$ make
This compiles the same app with ICC. To run it:
$ bin/rtview ../inputs/happy_buddha.obj -nodisplay -automove -nthreads 1 -frames 1 -res 480 270
This produces a Segfault on my machine.
Some analysis
A colleague helped trace down the execution and he thinks the program probably have a corrupted heap. One trace showed that the segfault happens at a movaps instruction with the address not aligned. However, a former movaps instruction with unaligned address passed. So it might be that the address points to an invalid location. Then we added in some printf, and the segfault happens at the call printf. So it looks like something more fundamental is wrong, but we are not sure. A valgrind run with a smaller data set (inputs/inputs_simdev.tar) reveals many error for the ICC one but four erros for the GCC one. Hope this helps.
Justin
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Many many thanks!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I saw this thread being open for too long without response. Hence I'm taking a look. Up to now I can reproduce the SEGV and come back to you once analyzed.
Regards,
Georg Zitzlsberger
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I've analyzed the problem and it seems to be a severe issue with unaligned access. Hence I've escalated it to compiler engineering (DPD200294372). Unfortunately I cannot provide you a workaround because it seems to be a general issue.
As soon as I learn more I'll let you know.
Best regards,
Georg Zitzlsberger
- 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
Hello Justin,
I just got informed that a fix for the above problem is part of Intel(R) Composer XE 2013 SP1 (and higher).
Best regards,
Georg Zitzlsberger

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page