[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference decwet::visual

Title:Microsoft Visual C++ bug reports and kits
Notice:Register in Topic 2. 5.Last for latest Kit
Moderator:DECWET::THOMASN
Created:Tue May 17 1994
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:521
Total number of notes:2938

504.0. "When /QA21164A turned on for AS250's ? Help !!!" by HYDRA::SHEN () Mon Apr 28 1997 08:03

    An ISV is using /QA21164A switch with VC++ V4.2B for her application.
    It works wonders with the new paw 433a's. However the ISV's customers
    (field testing) report that the /QA21164A switch cause the application
    to crash on their AlphaStation 250's due to illegal instruction
    exception.
    
    Aren't these exceptions supposed to be trapped and the new instructions
    emulated on older workstations ?
    
    What is required of the WNT/ALPHA enviromnet for this emulation to work
    ? The customer is running WNT V4.0. Is there an SP required ? Are
    VC++ v4.2b dll's required on the target machines ?
    
    Thanks
    
    Robert
    
T.RTitleUserPersonal
Name
DateLines
504.1DECCXL::OUELLETTEmudseason into blackfly seasonMon Apr 28 1997 09:0524
> What is required of the WNT/ALPHA enviromnet for this emulation to work?

The ByteWord instruction emulator is off by default.
To turn it on, edit your registry.

HKEY_LOCAL_MACHINE
  SYSTEM
    CurrentControlSet
      Control
        Session Manager

If you don't have an "EnableByteWordInstructionEmulation" key, add one with
a REG_DWORD value of 1.  You must reboot to have the change take effect.

The speed of applications using the emulator may not be satisfactory.
Applications that benefit a lot by using the new instructions will
(probably) have substantial slowdown on older machines (vs. using -QA21164
or -QA21064).  For the moment to get peak performance on both old and new
machines takes two sets of images.  This is a know problem.

There is work in progress to make images which run better on machines with
the new instructions and don't take the emulation penalty on old machines.
The goal is to make one image which gets close to peak performance on both
old and new machines.
504.2HYDRA::CHINMon Apr 28 1997 10:409
  RE: -1

   I thought the build with /QA21164A can only be run on EV56 system,
   and not on EV4, or EV45 (ALphastation 250) or EV5 systems. Is the 
    registry setting you suggested a new workaround.


   Miller
504.3I wouldn't recomend it.DECCXL::OUELLETTEmudseason into blackfly seasonMon Apr 28 1997 12:073
The emulator has been in Windows NT V4.0 from day one.
It is not enabled by default because it's so slow.
As such it's not much of a workaround.
504.4thanks re. .1HYDRA::SHENMon Apr 28 1997 14:324
    Thanks for the info.
    
    Robert
    
504.5Undocumented for a reason...DECWET::CONNORSMyles F. Connors Jr.Tue Apr 29 1997 12:145
    To amplify what Roland said in .3, this registry key was specifically
    left undocumented precisely because of the performance issue; it's use
    is strongly discouraged.
    
    M
504.6We shall publish the registry key more widely ...HYDRA::SHENWed Apr 30 1997 09:4819
    One of our goals here at SPEG is to help speed up ISVs' migration to
    newer/better vc++ development environment on WNT/Alpha. It is almost
    universal that the ISVs' would not tolerate having to support two
    development/build environments on the same platform at any moment.
    
    If you tell the ISVs that the build on the new environment using the
    optimal switches would cause it not to run with the installed base
    (no matter how small it is), then they will not turn on the switch.
    
    Speaking from my experience and belief, it is better to let the ISVs
    know about the registry key. As long as the computation result is
    correct, they will tolerate the performance penalty on the older
    model and help us sell more newer, faster machines. Alpha's installed
    base in 1997 is still very small compared with Intel's. It is rather
    an opportunity to phase out the older, tired models and increase market
    share with ev56 based machines knowing that ev6 can not be far away.
    
    Robert
      
504.7DECC::OUELLETTEmudseason into blackfly seasonWed Apr 30 1997 12:3713
We understand the problem of needing two builds and are working to fix it.
In the future a backwards compatiblity switch will be implemented.
The emulator works but at the cost of up to 100 times slow down over
the old code on old machines.  The best real example of using the
new instructions on new machines that I have seen is ijpeg (from SPEC95);
it runs in something like 2/3rds the time of old instructions on the
new machines.  Contrived examples could easily do better and some
codes show little improvement.

For the moment, you really need to experiment to make the engineering
descisions on a case by case basis.

Roland.
504.8!! Does this registry key works only with NT4.0 ?HYDRA::SHENWed Apr 30 1997 13:1579
    From: Geoff Babb <[email protected]>
    Reply-To: [email protected]
    Organization: Veribest, Inc.
    X-Mailer: Mozilla 3.0Gold (WinNT; I)
    Mime-Version: 1.0
    To: [email protected]
    Subject: Re: Turn on registry key to run /QA21164A apps on older Alpha
    machines
    References: <[email protected]>
    Content-Type: text/plain; charset=us-ascii
    Content-Transfer-Encoding: 7bit
    
    Robert,
    
    Does this fix work on NT4.0 only?  We have an NT3.51 system that
    appears to ignore the registry setting and therefore always 
    generates an illegal instruction.
    
    Geoff
    [email protected] wrote:
    > 
    > The attached insturction show how to run /QA21164A built applications
    on older
    > Alpha (EV4, EV5) machines. This is applicable to:
    > 
    >         AS250 family &
    >         XL266 machine
    >          (NOTE: XL366 machine uses newer chip; and does not need this
    registry
    >                 entry.).
    > 
    > Robert
    > 
    >                <<< DECWET::DOCD$:[NOTES$LIBRARY]VISUAL.NOTE;1 >>>
    >                  -< Microsoft Visual C++ bug reports and kits >-
    >
    ================================================================================
    > Note 504.1       When /QA21164A turned on for AS250's ? Help !!!         
    1 of 3
    > DECCXL::OUELLETTE "mudseason into blackfly season"   24 lines 
    28-APR-1997 08:05
    > -
    >
    --------------------------------------------------------------------------------
    > > What is required of the WNT/ALPHA enviromnet for this emulation to
    work?
    > 
    > The ByteWord instruction emulator is off by default.
    > To turn it on, edit your registry.
    > 
    > HKEY_LOCAL_MACHINE
    >   SYSTEM
    >     CurrentControlSet
    >       Control
    >         Session Manager
    > 
    > If you don't have an "EnableByteWordInstructionEmulation" key, add
    one with
    > a REG_DWORD value of 1.  You must reboot to have the change take
    effect.
    > 
    > The speed of applications using the emulator may not be satisfactory.
    > Applications that benefit a lot by using the new instructions will
    > (probably) have substantial slowdown on older machines (vs. using
    -QA21164
    > or -QA21064).  For the moment to get peak performance on both old and
    new
    > machines takes two sets of images.  This is a know problem.
    > 
    > There is work in progress to make images which run better on machines
    with
    > the new instructions and don't take the emulation penalty on old
    machines.
    > The goal is to make one image which gets close to peak performance on
    both
    > old and new machines.
    > 
    > ------- End of Forwarded Message
    
504.9need more details ...HYDRA::SHENWed Apr 30 1997 13:228
    
    What version of WNT (and sp) is required ?
    Does the run time machine need vc++ dll's (and which version) installed  ?
    
    Thanks
    
    Robert
    
504.10DECCXL::OUELLETTEmudseason into blackfly seasonWed Apr 30 1997 14:082
The emulator is in Windows NT V4.0.
It is part of the base OS; VC++ is not required.
504.11Don't do itBGSDEV::MORRISTom Morris - Light &amp; Sound EngineeringThu May 01 1997 17:5515
re: .6

I would dispute the contention that the best way to sell lots
of new systems is by poor treatment of those who have bought
"older, tired models" from us in the past.  The machine that
I'm considering buying today will be old and tired when EV6
comes out and then I'll get the same treatment that you're
proposing to give the EV4 customers.

It's unfortunate that we don't have an effective way to use
byte/word instructions in real world applications yet, but
I hope SPE thinks long and hard before recommending that
ISVs treat customers in this way.

Tom
504.12re. .11HYDRA::SHENMon May 05 1997 09:0624
    
    I fully agree with Tom's point in that "Thou shall not abuse Thine
    customer base.". In fact, the customer definitely would not stand to be
    mistreated. So, of course, you have to be careful when making any
    proposal to your customer, including /QA21164A.
    
    In this case, the small installed base (in general) and very small
    installed base of this case (in particular) can continue:
    1). using the current and older versions of the ISV's applications
        without any problem.
    2). plan to buy new machines to take advantage of the much faster,
    	yet un-released version of the ISV's application.
    3). continue using the old, tired hardware and take a small performance
    	hit when they plan to use the yet un-released version of the ISV's
    	application.
    
    In this WNT/ALPHA market of Simultaneous Expansion and Acceleration, I
    believe my suggestion will bring the best benefit to all parties
    involved, including the end customers, ISV's, Digital, the market and
    even our competitors...
    
    bps
    
    
504.13DECC::OUELLETTEmudseason into blackfly seasonMon May 05 1997 09:425
> take a small performance hit

The backwards-compatible-image stuff should make the hit small.
The emulator may or may not slow things down by a factor of 100.
BCI is _still_ in the future...
504.14BGSDEV::MORRISTom Morris - Light &amp; Sound EngineeringTue May 06 1997 15:4927
re: .12 & .13

There doesn't seem to be agreement about the size of the performance
impact.  

Robert - Since you appear to be considering overriding Roland's
recommendations how about posting some concrete performance numbers
for

	EV5  without /QA21164A
	EV56 without /QA21164A
	EV5  with    /QA21164A (using emulator)
	EV56 with    /QA21164A

I think this is useful information to collect and share for
a variety of applications so that we can make appropriate
recommendations to developers, both internal and external.

Our own experience with MPEG video decompression is that we
get about a 5% boost using byte/word.   This is worth using
for benchmarks and special cases, but nowhere near big enough
a benefit to deal with the aggravation of multiple binaries
for different architectures.  Collecting this data for a
variety of applications will allow developers to make informed
decisions for their particular application.

Tom