patched ati version

Moderator: BarsMonster

Post Reply [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
ash
Posts: 23
Joined: Wed Apr 15, 2009 10:23 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

patched ati version

Post by ash » Wed Jan 06, 2010 4:18 pm

i know what some testers faced with problems concerned all cpu cores using at the same time while used brook version of bars.
in any case that was due one unexpected "add esi, -1" process instruction wright after GetSystemInfo() API call, which in this case decreased number of cpu cores presented in the system)

please try new version- name ati_patch.rar in atachments (brook and ati***.dlls - the same as with official bars)

and the second

programs compiled with icc "don't like if cpuid(0) returns" non "GenuineIntel", but it doesn't have influence on perfomance if intrinsics was used while compiling program code, in any case i had patched sse version and i hope i'll be a bit faster on amd cores in the procedures where optimization compiler worked (non intrinsics) :wink:

please try for sse version sse_patch.rar
Attachments
sse_patched.rar
(179.71 KiB) Downloaded 338 times
ati_patched.rar
(209.67 KiB) Downloaded 349 times

User avatar
BarsMonster
Site Admin
Posts: 1118
Joined: Wed Oct 01, 2008 7:58 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: patched ati version

Post by BarsMonster » Wed Jan 06, 2010 8:33 pm

Great work :-)

Benchmarks of batched & non-patched versions on Phenom/PhenomII are welcome :-)

I've just heard few days ago that Intel intentionally chooses slower codepath for AMD :sad:

ash
Posts: 23
Joined: Wed Apr 15, 2009 10:23 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: patched ati version

Post by ash » Thu Jan 07, 2010 7:53 pm

i genaral i'm not looking forward any seriously speed increase cause intel's cpu dispatcher make influence only if program code doesn't have any intrinsics or it wasn't used compilation flags for exact simd family.
but, if i was able to find it in your code compiler decided to put it because it has some functions optimized for sse (non md5 hashing procedure): i guess some light-weight procedures, like memcpy, memmove, etc.
some i'm not expecting any great speed boost, but in any case it must be checked.

try to use next flags for compilation: -QoX.

IvanG
Posts: 89
Joined: Wed May 06, 2009 12:42 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: patched ati version

Post by IvanG » Thu Jan 07, 2010 11:55 pm

No changes at all for Phenom 9550.
I've just heard few days ago that Intel intentionally chooses slower codepath for AMD.
Doubt it's true. And AMD can always make their own compiler if ICC that bad ;).

mrb
Posts: 51
Joined: Sat Oct 18, 2008 6:04 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: patched ati version

Post by mrb » Fri Jan 08, 2010 3:34 am

IvanG wrote:
I've just heard few days ago that Intel intentionally chooses slower codepath for AMD.
Doubt it's true. And AMD can always make their own compiler if ICC that bad ;).
Yes it is true. It is overly documented in all the lawsuits Intel is currently facing and has been known in technical circles for years. I can't believe you guys don't know this :)

From http://www.ftc.gov/os/adjpro/d9341/091216intelcmpt.pdf
58. For example, in response to AMD introduction of its Opteron CPU for servers in 2003, Intel
became concerned about the competitive threat posed by Opteron processors. Intel then designed its compiler and libraries in or about 2003 to generate software that runs slower on non-Intel x86 CPUs, such as Opteron

ash
Posts: 23
Joined: Wed Apr 15, 2009 10:23 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: patched ati version

Post by ash » Fri Jan 08, 2010 7:44 pm

No changes at all for Phenom 9550.
i'd expected that)
Doubt it's true. And AMD can always make their own compiler if ICC that bad ;).
http://habrahabr.ru/blogs/hardware/8005 ... nt_2353114
Yes it is true. It is overly documented in all the lawsuits Intel is currently facing and has been known in technical circles for years. I can't believe you guys don't know this :)
i'd payed attention on that while debugging some shit compiled with the help of INtelC++ v.10. So in any case it"s well known, but for developers it's not so important. Moreover it depends on the keys used while compiling project.

IvanG
Posts: 89
Joined: Wed May 06, 2009 12:42 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: patched ati version

Post by IvanG » Fri Jan 08, 2010 9:15 pm

I doubt that ICC intentionally generates slow code for AMD CPUs. I think it's just "we don't care much about selecting best variant for CPUs we aren't producing". ICC produced by Intel for Intel's CPUs, so why it's so strange? No idea.

Using SSE2 code and optimizing for particular processor is a totally different things. I'm writing some routines now for MS Office/RAR/WPA, all of them using SHA-1, and I'm already have SSE2 code for Intel Core CPUs, SSE2 code for P4, SSE2 code for Intel Atom, SSE2 code for AMD K10, MMX code for Intel PII/III, MMX code for K7 and generic code for processors below Pentium MMX. As I don't have access for AMD K8 I'm using K10's code for it but I doubt that it's optimal, may be K7 code will be better there.

So using CPUID and detect which code to run is a good idea actually. But most developers don't care about this and, moreover, even optimizations at all.

Just scary news "Intel THAT, AMD THIS, OMG!" :P Almost nobody knows details, flaming wars everywhere, /sign.

mrb
Posts: 51
Joined: Sat Oct 18, 2008 6:04 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: patched ati version

Post by mrb » Sat Jan 09, 2010 7:42 am

IvanG wrote: I doubt that ICC intentionally generates slow code for AMD CPUs.
Yes, ICC will intentionally select a slower code path for non-Intel CPUs. For example I remember seeing code that was compiled to 2 different code paths, an SSE one, and a non-SSE one, in the same binary/executable file; but during runtime, instead of checking the CPUID SSE feature flag to choose which path to take, ICC uses CPUID to check the vendor string (GenuineIntel vs. AutenticAMD). Even though the SSE path is obviously faster on all processors supporting SSE.

No matter how you put it, this is deliberate attempt at slowing down non-Intel CPUs. As assembly devs we all know feature flags should be checked, not vendor strings...

IvanG
Posts: 89
Joined: Wed May 06, 2009 12:42 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: patched ati version

Post by IvanG » Sat Jan 09, 2010 8:56 am

mrb wrote:Even though the SSE path is obviously faster on all processors supporting SSE.
This is not true. Which I was talking about.

Sometimes using SSE can greatly slow down the code instead of accelerating it. Especially this applies for P4 and VIA CPUs, so checking

if (we have Intel CPU) and (it supports SSE2) and (it's Core architecture)
use fast SSE2
else
use default code;

is more than OK.

Anyway, AMD's CPUs these days can't compete with Intel's ones especially when coming to SSE2 integer calculations == hashing, they are about 50% slower at same frequency even with smartly optimized assembly code.

mrb
Posts: 51
Joined: Sat Oct 18, 2008 6:04 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: patched ati version

Post by mrb » Sat Jan 09, 2010 7:45 pm

IvanG wrote:
mrb wrote:Even though the SSE path is obviously faster on all processors supporting SSE.
This is not true. Which I was talking about.
It is true in the vast majority of the cases. It makes no sense at all to care about, and optimize the very rare cases (P4, VIA in combination with some rare SSE instruction sequences) at the expense of massively slowing down all other cases. How can you argue that?
IvanG wrote: is more than OK.
Well everybody else disagree. Including the FTC. Hence the lawsuit.

IvanG
Posts: 89
Joined: Wed May 06, 2009 12:42 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: patched ati version

Post by IvanG » Mon Jan 11, 2010 10:26 am

No point to argue obviously. Who cares about AMD processors, among all readers of this forum looks like only me having Phenom (and only as separate test machine, my working one is Intel based), it additionally shows how "good" AMD's processors are. No compiler will change this fact :lol:.

Post Reply
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Who is online

Users browsing this forum: No registered users and 1 guest