Hi Shyam,

I also faced this issue with “movntdq_Mo_Vo” in the recent past when I was 
trying to compile and run SPEC2006 with Gem5.

I managed to debug it to some extent – the source of these unimplemented 
instructions is likely one of the linked libraries (mostly glibc) that the 
binary uses.

While I didn’t manage to find a fix, I got a work-around: I compiled my 
binaries with static linking (-static flag to linker) on a older system that 
apparently did not use this instruction. Subsequently, those binaries also 
worked with Gem5 on my newer system where I was originally facing this issue. 
Sorry, I am unable to give you precise versions of the SW I used – I no longer 
have access.

Hope this helps!
Gururaj

From: gem5-users 
<gem5-users-boun...@gem5.org<mailto:gem5-users-boun...@gem5.org>> on behalf of 
Gabe Black <gabebl...@google.com<mailto:gabebl...@google.com>>
Reply-To: gem5 users mailing list 
<gem5-users@gem5.org<mailto:gem5-users@gem5.org>>
Date: Sunday, June 30, 2019 at 10:42 PM
To: Shyam Murthy <shyammurth...@gmail.com<mailto:shyammurth...@gmail.com>>
Cc: gem5 users mailing list <gem5-users@gem5.org<mailto:gem5-users@gem5.org>>
Subject: Re: [gem5-users] SPECCPU 2006 application crashes on x86 gem5

Hi Shyam. Part of the issue is an unfortunate aspect of how gcc works where 
there are some components that are built when gcc itself is built/installed 
which use certain settings, and if you link against them later (which gcc will 
do implicitly/automatically in at least a couple cases) those settings won't 
change and you can get, for instance, instructions that you'd turned off. There 
can be even bigger issues if you change flags that break ABI compatibility 
since those libraries won't work at all instead of just disregarding your 
settings.

There are apparently also header files which get pulled in which use features 
you can technically disable, but disabling them breaks those headers.

I think the linked thread is probably where someone was using instructions 
which were too new to be supported, but in your case I think (without having 
the time to check for sure) that that instruction isn't supported because it's 
the non-temporal version, and there isn't (or at least wasn't) a good way to 
implement that behavior. I vaguely remember adding a flag which disabled 
caching which you might find if you look at the repository history or archived 
emails, so it may be possible to implement that instruction properly now.

Gabe

On Sun, Jun 30, 2019 at 4:38 PM Shyam Murthy 
<shyammurth...@gmail.com<mailto:shyammurth...@gmail.com>> wrote:
Hi,

Additionally, I also tried using the -mno-sse2 flag, with which it compiles, 
but the error persists. However, when I tried to compile using the -mno-sse 
flag, then compilation fails saying:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: In function 'atof':
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:26:1: error: SSE register 
return with SSE disabled

Thanks,
Shyam

On Sun, Jun 30, 2019 at 3:24 PM Shyam Murthy 
<shyammurth...@gmail.com<mailto:shyammurth...@gmail.com>> wrote:
Hi,

This is slightly different, there is no panic message here. However, this 
instruction is unimplemented, but is required by the application for its 
execution, causing it to abort. As in your link, Gabe mentions that we need to 
tell the compiler not to use this instruction. I was unsure how to achieve the 
same, I tried passing the -msse flag to gcc during compilation, but the movntdq 
instruction still seems to be getting generated.

Thanks,
Shyam

On Sun, Jun 30, 2019 at 1:06 PM Kleovoulos Kalaitzidis 
<kleovoulos.kalaitzi...@inria.fr<mailto:kleovoulos.kalaitzi...@inria.fr>> wrote:
Hello,
it is normal to get these warnings for unimplemented instructions. However, in 
my experience, these warnings are not the case for aborting. Normally some 
panic message follows, but maybe not related to this "warn". For instance, 
there is the case of avx instructions that are not implemented and will abort 
the execution : 
https://gem5-users.gem5.narkive.com/jO22f7kV/spec2017-on-gem5-se-mode

Regards,

--
Kleovoulos Kalaitzidis
Doctorant - Équipe PACAP

Centre de recherche INRIA Rennes - Bretagne Atlantique
Bâtiment 12E, Bureau E321, Campus de Beaulieu,
35042 Rennes Cedex, France

________________________________
From: "Shyam Murthy" <shyammurth...@gmail.com<mailto:shyammurth...@gmail.com>>
To: "gem5 users mailing list" <gem5-users@gem5.org<mailto:gem5-users@gem5.org>>
Sent: Sunday, June 30, 2019 7:02:37 PM
Subject: [gem5-users] SPECCPU 2006 application crashes on x86 gem5
Hi All,
I am trying to run some of the FP applications from SPECCPU 2006. However, for 
some of these applications (like povray, tonto), I get an error that says:

warn: instruction 'movntdq_Mo_Vo' unimplemented.

I am compiling these applications on my machine, and then running them on x86 
gem5. My machine uses gcc version 7.4.0. I tried using gcc version 5.5 (already 
installed on my machine), but the problem persists.


Any suggestions as to what I can do to fix this?


Thanks,

Shyam

_______________________________________________
gem5-users mailing list
gem5-users@gem5.org<mailto:gem5-users@gem5.org>
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org<mailto:gem5-users@gem5.org>
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to