Forum > Windows
optimized sources
_heinz:
@cristipurdel
as far as I know the Unified Installer v0.37 has a detection mechanism of the CPU, but you can choose your app and the optimization(SSSE3) like yo can see there -->
Unified_Installer_v0.37
perhaps Jason can tell you some more about the mechanism of the installer.
further you can see it if you are looking at the stderr protocoll of the calculated wu's on your host.
heinz
cristipurdel:
Sorry, for not being more precise. I'm interested in a general application that can detect the cpu optimizations. The lunatics installer was just an example.
Jason G:
SSE through SSE4.2 aren't 'optimisations', they are instruction sets. As such there aren't 'usuallly' outward means of determining whether a given application uses certain instructions, though we usually put the maximum instruction set level (SSE Level) as part of the file name.
Stock Mutibeam uses internal benching/dispatching mechanisms to decide which functions to use. Typically an AK or BH variant is chosen fom those, and the selected function is noted in the stderr output. Those are mostly SSE.
In many cases the instructions chosen represent microarchitectural optimisation, which is one level of optimisation that applies only to specific hardware. Most optimisations that provide greatest benefit tend to be algorithmic (general) optimisations and are not dependant on the instructions used. In those cases there are no outward indications of hardware required.
Differnet instructions from different SSE levels built into the microprocessors may or may not be useful for given code, and in most cases simply telling the compiler to use those instructions doesn't do a very good job (i.e. is niot optimisation!)
If you really want to 'see' what instructions were used, then the most effective means I know of would be to use a debugger that shows some disssassembly of the executable code, which you could then look up the instructions in CPU manufacturer reference materials. Short of that, looking at the source code if curious is never a bad idea IMO if available. (and quite a bit easier ;))
Jason
_heinz:
--- Quote from: cristipurdel on 28 Sep 2010, 04:16:17 pm ---Sorry, for not being more precise. I'm interested in a general application that can detect the cpu optimizations. The lunatics installer was just an example.
--- End quote ---
if you want to see which instruction set(SSE SSE2 SSE3 SSSE3 etc) your cpu support you can use Everest Ultimate
or very easy cpuz
~~~~~~~~
A typical report from Everest looks like this:
Informationsliste Wert
CPU-Eigenschaften
CPU Typ Intel Atom 230, 1600 MHz (12 x 133)
CPU Bezeichnung Diamondville-SC
CPU stepping C0
Befehlssatz x86, x86-64, MMX, SSE, SSE2, SSE3, SSSE3
Vorgesehene Taktung 1600 MHz
Min / Max CPU Multiplikator 6x / 12x
Engineering Sample Nein
L1 Code Cache 32 KB
L1 Datencache 24 KB
L2 Cache 512 KB (On-Die, ECC, ASC, Full-Speed)
Multi CPU
Motherboard ID nVidia MCP79
CPU #1 Intel(R) Atom(TM) CPU 230 @ 1.60GHz, 1600 MHz
CPU #2 Intel(R) Atom(TM) CPU 230 @ 1.60GHz, 1600 MHz
CPU Technische Informationen
Gehäusetyp 437 Ball FC-BGA
Gehäusegröße 2.2 cm x 2.2 cm
Transistoren 47 Mio.
Fertigungstechnologie 45 nm, CMOS, Cu, High-K + Metal Gate
Gehäusefläche 25 mm2
Typische Leistung 4 W @ 1.60 GHz
CPU Hersteller
Firmenname Intel Corporation
Produktinformation http://www.intel.com/products/processor
CPU Auslastung
1. CPU / 1. HTT Einheit 0 %
1. CPU / 2. HTT Einheit 0 %
heinz
Raistmer:
Debugger as Jason said + profiler like VTune or Code Analyst. They will show "optimization level" in some performance terms and actually intended to be used for "optimization level" assessment.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version