Tillbaka till svenska Fidonet
English   Information   Debug  
OS2BBS   0/787
OS2DOSBBS   0/580
OS2HW   0/42
OS2INET   0/37
OS2LAN   0/134
OS2PROG   0/36
OS2REXX   0/113
OS2USER-L   207
OS2   0/4786
OSDEBATE   7492/18996
PASCAL   0/490
PERL   0/457
PHP   0/45
POINTS   0/405
POLITICS   0/29554
POL_INC   0/14731
PSION   103
R20_ADMIN   1123
R20_AMATORRADIO   0/2
R20_BEST_OF_FIDONET   13
R20_CHAT   0/893
R20_DEPP   0/3
R20_DEV   399
R20_ECHO2   1379
R20_ECHOPRES   0/35
R20_ESTAT   0/719
R20_FIDONETPROG...
...RAM.MYPOINT
  0/2
R20_FIDONETPROGRAM   0/22
R20_FIDONET   0/248
R20_FILEFIND   0/24
R20_FILEFOUND   0/22
R20_HIFI   0/3
R20_INFO2   3250
R20_INTERNET   0/12940
R20_INTRESSE   0/60
R20_INTR_KOM   0/99
R20_KANDIDAT.CHAT   42
R20_KANDIDAT   28
R20_KOM_DEV   112
R20_KONTROLL   0/13301
R20_KORSET   0/18
R20_LOKALTRAFIK   0/24
R20_MODERATOR   0/1852
R20_NC   76
R20_NET200   245
R20_NETWORK.OTH...
...ERNETS
  0/13
R20_OPERATIVSYS...
...TEM.LINUX
  0/44
R20_PROGRAMVAROR   0/1
R20_REC2NEC   534
R20_SFOSM   0/341
R20_SF   0/108
R20_SPRAK.ENGLISH   0/1
R20_SQUISH   107
R20_TEST   2
R20_WORST_OF_FIDONET   12
RAR   0/9
RA_MULTI   106
RA_UTIL   0/162
REGCON.EUR   0/2056
REGCON   0/13
SCIENCE   0/1206
SF   0/239
SHAREWARE_SUPPORT   0/5146
SHAREWRE   0/14
SIMPSONS   0/169
STATS_OLD1   0/2539.065
STATS_OLD2   0/2530
STATS_OLD3   0/2395.095
STATS_OLD4   0/1692.25
SURVIVOR   0/495
SYSOPS_CORNER   0/3
SYSOP   0/84
TAGLINES   0/112
TEAMOS2   0/4530
TECH   0/2617
TEST.444   0/105
TRAPDOOR   0/19
TREK   0/755
TUB   0/290
UFO   0/40
UNIX   0/1316
USA_EURLINK   0/102
USR_MODEMS   0/1
VATICAN   0/2740
VIETNAM_VETS   0/14
VIRUS   0/378
VIRUS_INFO   0/201
VISUAL_BASIC   0/473
WHITEHOUSE   0/5187
WIN2000   0/101
WIN32   0/30
WIN95   0/4289
WIN95_OLD1   0/70272
WINDOWS   0/1517
WWB_SYSOP   0/419
WWB_TECH   0/810
ZCC-PUBLIC   0/1
ZEC   4

 
4DOS   0/134
ABORTION   0/7
ALASKA_CHAT   0/506
ALLFIX_FILE   0/1313
ALLFIX_FILE_OLD1   0/7997
ALT_DOS   0/152
AMATEUR_RADIO   0/1039
AMIGASALE   0/14
AMIGA   0/331
AMIGA_INT   0/1
AMIGA_PROG   0/20
AMIGA_SYSOP   0/26
ANIME   0/15
ARGUS   0/924
ASCII_ART   0/340
ASIAN_LINK   0/651
ASTRONOMY   0/417
AUDIO   0/92
AUTOMOBILE_RACING   0/105
BABYLON5   0/17862
BAG   135
BATPOWER   0/361
BBBS.ENGLISH   0/382
BBSLAW   0/109
BBS_ADS   0/5290
BBS_INTERNET   0/507
BIBLE   0/3563
BINKD   0/1119
BINKLEY   0/215
BLUEWAVE   0/2173
CABLE_MODEMS   0/25
CBM   0/46
CDRECORD   0/66
CDROM   0/20
CLASSIC_COMPUTER   0/378
COMICS   0/15
CONSPRCY   0/899
COOKING   33431
COOKING_OLD1   0/24719
COOKING_OLD2   0/40862
COOKING_OLD3   0/37489
COOKING_OLD4   0/35496
COOKING_OLD5   9370
C_ECHO   0/189
C_PLUSPLUS   0/31
DIRTY_DOZEN   0/201
DOORGAMES   0/2065
DOS_INTERNET   0/196
duplikat   6002
ECHOLIST   0/18295
EC_SUPPORT   0/318
ELECTRONICS   0/359
ELEKTRONIK.GER   1534
ENET.LINGUISTIC   0/13
ENET.POLITICS   0/4
ENET.SOFT   0/11701
ENET.SYSOP   33946
ENET.TALKS   0/32
ENGLISH_TUTOR   0/2000
EVOLUTION   0/1335
FDECHO   0/217
FDN_ANNOUNCE   0/7068
FIDONEWS   24159
FIDONEWS_OLD1   0/49742
FIDONEWS_OLD2   0/35949
FIDONEWS_OLD3   0/30874
FIDONEWS_OLD4   0/37224
FIDO_SYSOP   12852
FIDO_UTIL   0/180
FILEFIND   0/209
FILEGATE   0/212
FILM   0/18
FNEWS_PUBLISH   4436
FN_SYSOP   41708
FN_SYSOP_OLD1   71952
FTP_FIDO   0/2
FTSC_PUBLIC   0/13615
FUNNY   0/4886
GENEALOGY.EUR   0/71
GET_INFO   105
GOLDED   0/408
HAM   0/16075
HOLYSMOKE   0/6791
HOT_SITES   0/1
HTMLEDIT   0/71
HUB203   466
HUB_100   264
HUB_400   39
HUMOR   0/29
IC   0/2851
INTERNET   0/424
INTERUSER   0/3
IP_CONNECT   719
JAMNNTPD   0/233
JAMTLAND   0/47
KATTY_KORNER   0/41
LAN   0/16
LINUX-USER   0/19
LINUXHELP   0/1155
LINUX   0/22112
LINUX_BBS   0/957
mail   18.68
mail_fore_ok   249
MENSA   0/341
MODERATOR   0/102
MONTE   0/992
MOSCOW_OKLAHOMA   0/1245
MUFFIN   0/783
MUSIC   0/321
N203_STAT   930
N203_SYSCHAT   313
NET203   321
NET204   69
NET_DEV   0/10
NORD.ADMIN   0/101
NORD.CHAT   0/2572
NORD.FIDONET   189
NORD.HARDWARE   0/28
NORD.KULTUR   0/114
NORD.PROG   0/32
NORD.SOFTWARE   0/88
NORD.TEKNIK   0/58
NORD   0/453
OCCULT_CHAT   0/93
Möte OSDEBATE, 18996 texter
 lista första sista föregående nästa
Text 8726, 112 rader
Skriven 2005-12-12 12:38:54 av Rich Gauszka (1:379/45)
Ärende: Why Intel Sucks at gaming
=================================
From: "Rich Gauszka" <gauszka@hotmail.com>

automatic optimizations? 3rd party libraries?

http://www.extremetech.com/article2/0,1697,1895906,00.asp

This discussion revolves around an email from a technically astute ExtremeTech
reader. I'm including it as part of my weekly column rather than as a standard
ExtremeTech story, mostly to get people thinking about the issue. Keep in mind
that it comes from a single source, discussing a single game. But we thought it
was interesting enough to open up to wider discussion.
Early last week, we received an email from Igor Levicki, commenting about Jason
Cross's feature article, Real Gaming Challenge: Intel vs. AMD. Levicki wasn't
disputing Jason's conclusion-that AMD beats Intel by wide margins in gaming
tests. But he apparently decided to dig a little deeper. Here's what he did, in
his own words:

  It intrigued me why Intel CPUs have inferior performance in some games and
in others they are on par with AMD.


  Therefore, I have reverse-engineered Battlefield 2 game executable and
come to the following conclusions:

    1.. It was compiled using Visual Studio 2003 C++ compiler.
    2.. It was compiled in blended mode almost without any optimizations.
We headed over to Microsoft's MSDN web site and obtained this little tidbit
about blended mode:

  "When no /Gx option is specified, the compiler defaults to /GB, "blended"
optimization mode. In both the 2002 and 2003 releases of Visual C++ .NET,
/GB is equivalent to /G6, which is said to optimize code for the Intel
Pentium Pro, Pentium II, and Pentium III."

But Microsoft recommends that code writers use /G7 when designing code for
Pentium 4's and AMD Athlon systems. Again, here's more from the MSDN web site
on the topic:

  "The performance improvement achieved by compiling an application with /G7
varies, but when comparing to code generated by Visual C++ .NET 2002, it's not
unusual to see 5-10 percent reduction in execution time for typical programs,
and even 10-15 percent for programs that contain a lot of floating-point code.
The range of improvement can vary greatly, and in some cases users will see
over 20 percent improvement when compiling with /G7 and running on the latest
generation processors. Using /G7 does not mean that the compiler will produce
code that only runs on the Intel Pentium 4 and AMD Athlon processors. Code
compiled with /G7 will continue to run on older generations of these
processors, although there might be some minor performance penalty. In
addition, we've observed some cases where compiling with /G7 produces code that
runs slower on the AMD Athlon." This is a little unclear at this point.
Microsoft's reference to "AMD Athlon" may refer to the older line of 32-bit
Athlon CPUs (K7 generation)-the Athlon XP and earlier. Current 90nm Athlon 64s
fully support Intel's SSE, SSE2, and SSE3 instructions.

The MSDN document linked above goes on to suggest that the /G7 switch will
produce sequences that may have more instructions, but run more efficiently on
the Pentium 4 by avoiding high-latency instructions, such as IMUL

Now let's return to Igor Levicki's email.

  ... it would be logical to at least compile the game code with /G6 and
/arch:SSE switches. That however, is not the case. I have checked it and the
code uses only FPU, which is known to work slower on Pentium 4s. Moreover it
uses pretty inefficient integer code too. Even /G6 would help a lot by enabling
the compiler to generate conditional moves instead of many conditional
branches, which are known to penalize NetBurst architecture so much.

  Levicki goes on to speculate about the reasons game developers might do
this, and leans towards conspiracy theories about pushing people to buy faster
systems. Me, I tend to believe it's more laziness, coupled with extremely tight
game-development schedules. Once we skip past this, Levicki returns to some
technical advice:

    Why not using at least SSE instead of FPU code? It is easy. They don't
even have to spend time optimizing by hand. They only have to flip a switch to
make the difference (or to kill it, depending on your viewpoint). They don't
even have to use Intel compiler: Visual C++ will do for that basic step.
  Why not, indeed?

  Going back to Visual Studio C++ for a moment, Microsoft's online docs
suggest that using the /ARCH:SSE and /ARCH:SSE2 switches allow code to
automatically take advantage of the presence of SSE/SSE2 instructions. This is
unlikely to penalize AMD specifically, though unrolling loops and other
P4-specific operations might possibly penalize the Athlon 64, but it's hard to
know without actually trying it. But using SSE/SSE2 shouldn't adversely affect
AMD. Even Fred Weber, AMD's former chief technology officer, acknowledged that
SIMD was the way to go with floating point as we move into the future.


  Let's assume for a moment that Igor is correct in his technical analysis.
In discussions with game developers over the past few years, I've learned that
they tend to be pretty wary of automatic optimizations generated by simple use
of compiler switches. Sometimes a large software build will break when certain
automatic optimizations are turned on. Some of this is likely institutional
memory, as compilers have improved over the years. Some of it is likely
laziness coupled with tight schedules, as alluded to above. If you're a game
developer on constant 80-hour a week crunch mode, experimenting with compiler
switches is probably the last thing on your mind.

  Still, it's an interesting thought. And the issue may not simply reside in
the game code itself. Many game developers use third-party libraries and game
engines, including physics engines, AI engines, audio processing libraries and
more. If that's the case, then the optimizing the core game code may not have
as large an impact as it might seem.

  So I'd like to hear from the game and middleware developers, if you're
reading this. Are your games optimized for all CPU architectures? Do you use
automatic optimizations, or do you avoid them? If you do avoid using compiler
optimization switches, let us know why. Inquiring minds would like to know

--- BBBS/NT v4.01 Flag-5
 * Origin: Barktopia BBS Site http://HarborWebs.com:8081 (1:379/45)