> > > > Also, can't you ask the compiler to produce both sse and non-sse code and > > make a decision at runtime? > > > > Not that I know of. At least GCC documentation does no list anything about > that here, http://gcc.gnu.org/onlinedocs/gcc/i386-and-x86-64-Options.html > > -mfpmath=both or -mfpmath=sse+387 does not seem to be doing that; instead > it seems to be about using both in the same code path.
in an ideal world we could use __attribute__((target("whatever"))) but
we'd need a newer gcc, and only gcc supports that atm afaik. What we've
done in other places where using ssee2 is a big win is to add a second
file that we compile with -msse2 and then we do some runtime detection
(mozilla/SSE.h) and then we only call into the file compiled with
-mssse2 if the runtime detection says we have sse.
Trev
>
> Benoit
>
>
> >
> >
> >> 2014-05-09 13:01 GMT-04:00 Chris Peterson <[email protected]>:
> >>
> >> > What does requiring SSE2 buy us? 1% of hundreds of millions of Firefox
> >> > users is still millions of people.
> >> >
> >> > chris
> >> >
> >> >
> >> >
> >> > On 5/8/14, 5:42 PM, [email protected] wrote:
> >> >
> >> >> On Tuesday, January 3, 2012 4:37:53 PM UTC-8, Benoit Jacob wrote:
> >> >>
> >> >>> 2012/1/3 Jeff Muizelaar <[email protected]>:
> >> >>>
> >> >>>
> >> >>>>
> >> >>> On 2012-01-03, at 2:01 PM, Benoit Jacob wrote:
> >> >>>>
> >> >>>
> >> >>>
> >> >>>>
> >> >>> 2012/1/2 Robert Kaiser <[email protected]>:
> >> >>>>
> >> >>>
> >> >>>
> >> >>>>
> >> >>> Jean-Marc Desperrier schrieb:
> >> >>>>
> >> >>>
> >> >>>
> >> >>>>
> >> >>>
> >> >>>>
> >> >>> According to https://bugzilla.mozilla.org/show_bug.cgi?id=594160#c6,
> >> >>>>
> >> >>>
> >> >>>
> >> >>>>
> >> >>> the Raw Dump tab on crash-stats.mozilla.com shows the needed
> >> >>>>
> >> >>>
> >> >>>
> >> >>>>
> >> >>> information, you need to sort out from the info on the second line
> >> CPU
> >> >>>>
> >> >>>
> >> >>>
> >> >>>>
> >> >>> maker, family, model, and stepping information whether SSE2 is there
> >> or
> >> >>>>
> >> >>>
> >> >>>
> >> >>>>
> >> >>> not (With a little search, I can find that info again, bug 593117
> >> gives
> >> >>>>
> >> >>>
> >> >>>
> >> >>>>
> >> >>> a formula that's correct for most of the cases).
> >> >>>>
> >> >>>
> >> >>>
> >> >>>>
> >> >>>
> >> >>>>
> >> >>>
> >> >>>>
> >> >>> https://crash-analysis.mozilla.com/crash_analysis/ holds
> >> >>>>
> >> >>>
> >> >>>
> >> >>>>
> >> >>> *-pub-crashdata.csv.gz files that have that info from all Firefox
> >> >>>>
> >> >>>
> >> >>>
> >> >>>>
> >> >>> desktop/mobile crashes on a given day, you should be able to analyze
> >> >>>> that
> >> >>>>
> >> >>>
> >> >>>
> >> >>>>
> >> >>> for this info - with a bias, of course, as it's only people having
> >> >>>> crashes
> >> >>>>
> >> >>>
> >> >>>
> >> >>>>
> >> >>> that you see there. No idea if the less biased telemetry samples have
> >> >>>> that
> >> >>>>
> >> >>>
> >> >>>
> >> >>>>
> >> >>> info as well.
> >> >>>>
> >> >>>
> >> >>>
> >> >>>>
> >> >>>
> >> >>>>
> >> >>> On yesterday's crash data, assuming that AuthenticAMD\ family\
> >> >>>>
> >> >>>
> >> >>> [1-6][^0-9] is the proper way to identify these old AMD CPUs (I
> >> >>>>
> >> >>>
> >> >>> didn't check that very well), I get these results:
> >> >>>>
> >> >>>
> >> >>>
> >> >>>>
> >> >>>
> >> >>>>
> >> >>> The measurement I have used in the past was:
> >> >>>>
> >> >>>
> >> >>>
> >> >>>>
> >> >>> CPUs have sse2 if:
> >> >>>>
> >> >>>
> >> >>>
> >> >>>>
> >> >>> if vendor == AuthenticAMD and family >= 15
> >> >>>>
> >> >>>
> >> >>> if vendor == GenuineIntel and family >= 15 or (family == 6 and (model
> >> >>>> == 9
> >> >>>>
> >> >>>
> >> >>> or model > 11))
> >> >>>>
> >> >>>
> >> >>> if vendor == CentaurHauls and family >= 6 and model >= 10
> >> >>>>
> >> >>>
> >> >>>
> >> >>>>
> >> >>>
> >> >>>
> >> >>> Thanks.
> >> >>>
> >> >>>
> >> >>>
> >> >>> AMD and Intel CPUs amount to 296362 crashes:
> >> >>>
> >> >>>
> >> >>>
> >> >>> bjacob@cahouette:~$ egrep AuthenticAMD\|GenuineIntel
> >> >>>
> >> >>> 20120102-pub-crashdata.csv | wc -l
> >> >>>
> >> >>> 296362
> >> >>>
> >> >>>
> >> >>>
> >> >>> Counting SSE2-capable CPUs:
> >> >>>
> >> >>>
> >> >>>
> >> >>> bjacob@cahouette:~$ egrep GenuineIntel\ family\ 1[5-9]
> >> >>>
> >> >>> 20120102-pub-crashdata.csv | wc -l
> >> >>>
> >> >>> 58490
> >> >>>
> >> >>> bjacob@cahouette:~$ egrep GenuineIntel\ family\ [2-9][0-9]
> >> >>>
> >> >>> 20120102-pub-crashdata.csv | wc -l
> >> >>>
> >> >>> 0
> >> >>>
> >> >>> bjacob@cahouette:~$ egrep GenuineIntel\ family\ 6\ model\ 9
> >> >>>
> >> >>> 20120102-pub-crashdata.csv | wc -l
> >> >>>
> >> >>> 792
> >> >>>
> >> >>> bjacob@cahouette:~$ egrep GenuineIntel\ family\ 6\ model\ 1[2-9]
> >> >>>
> >> >>> 20120102-pub-crashdata.csv | wc -l
> >> >>>
> >> >>> 52473
> >> >>>
> >> >>> bjacob@cahouette:~$ egrep GenuineIntel\ family\ 6\ model\ [2-9][0-9]
> >> >>>
> >> >>> 20120102-pub-crashdata.csv | wc -l
> >> >>>
> >> >>> 103655
> >> >>>
> >> >>> bjacob@cahouette:~$ egrep AuthenticAMD\ family\ 1[5-9]
> >> >>>
> >> >>> 20120102-pub-crashdata.csv | wc -l
> >> >>>
> >> >>> 59463
> >> >>>
> >> >>> bjacob@cahouette:~$ egrep AuthenticAMD\ family\ [2-9][0-9]
> >> >>>
> >> >>> 20120102-pub-crashdata.csv | wc -l
> >> >>>
> >> >>> 8120
> >> >>>
> >> >>>
> >> >>>
> >> >>> Total SSE2 capable CPUs:
> >> >>>
> >> >>>
> >> >>>
> >> >>> 58490 + 792 + 52473 + 103655 + 59463 + 8120 = 282993
> >> >>>
> >> >>>
> >> >>>
> >> >>> 1 - 282993 / 296362 = 0.045
> >> >>>
> >> >>>
> >> >>>
> >> >>> So the proportion of non-SSE2-capable CPUs among crash reports is 4.5
> >> %.
> >> >>>
> >> >>
> >> >> Just for the record, I coded this analysis up here:
> >> >> https://gist.github.com/matthew-brett/9cb5274f7451a3eb8fc0
> >> >>
> >> >> SSE2 apparently now at about one percent:
> >> >>
> >> >> 20120102-pub-crashdata.csv.gz: 4.53
> >> >> 20120401-pub-crashdata.csv.gz: 4.24
> >> >> 20120701-pub-crashdata.csv.gz: 2.77
> >> >> 20121001-pub-crashdata.csv.gz: 2.83
> >> >> 20130101-pub-crashdata.csv.gz: 2.66
> >> >> 20130401-pub-crashdata.csv.gz: 2.59
> >> >> 20130701-pub-crashdata.csv.gz: 2.20
> >> >> 20131001-pub-crashdata.csv.gz: 1.92
> >> >> 20140101-pub-crashdata.csv.gz: 1.86
> >> >> 20140401-pub-crashdata.csv.gz: 1.12
> >> >>
> >> >> Cheers,
> >> >>
> >> >> Matthew
> >> >>
> >> >>
> >> > _______________________________________________
> >> > dev-platform mailing list
> >> > [email protected]
> >> > https://lists.mozilla.org/listinfo/dev-platform
> >> >
> >> _______________________________________________
> >> dev-platform mailing list
> >> [email protected]
> >> https://lists.mozilla.org/listinfo/dev-platform
> >>
> >
> >
> _______________________________________________
> dev-platform mailing list
> [email protected]
> https://lists.mozilla.org/listinfo/dev-platform
signature.asc
Description: Digital signature
_______________________________________________ dev-platform mailing list [email protected] https://lists.mozilla.org/listinfo/dev-platform

