2015-10-28 12 views
13

Mi piacerebbe sperimentare con SIMD (dati multipli a singola istruzione). Da quello che posso ricavare dai post di Google Group, le persone hanno lavorato per aggiungere questo a Google Chrome, ma quando provo a chiamare SIMD.Float32x4 in Chrome 46, ottengo che SIMD non è definito.Come posso provare le istruzioni SIMD in Chrome?

Il mio google suggerisce che potrebbero esistere versioni sperimentali di Chrome con supporto SIMD. Qual è la versione più recente che lo include e quali flag della riga di comando devono essere impostati per poterlo utilizzare? Devo usare la modalità rigorosa?

Quando verrà inserito il SIMD nella versione stabile di Chrome?

Inoltre, fa la differenza eseguendo le istruzioni SIMD se eseguo una versione a 32 bit di Chrome o una versione a 64 bit?

+0

Forse il forum per sviluppatori di Google sarebbe un posto migliore per chiederlo. – Barmar

+0

** Nota per i visitatori futuri: ** Sembra che [Chrome stia scaricando il supporto SIMD] (https://bugs.chromium.org/p/v8/issues/detail?id=4124#c159) in JS e lo consente solo [in WebAssembly] (https://bugs.chromium.org/p/v8/issues/detail?id=6020&desc=2#maincol): \ – JoeRocc

risposta

10

Aggiornamento (24/6/17):Chrome is dropping SIMD support in JS e che lo consente solo in WebAssembly.


Aggiornamento: Ora è possibile nella ultima versione di Chrome con una bandiera:

--js-flags="--harmony-simd" 

in Chrome proprietà del collegamento (ad esempio sul desktop) "Target" campo sarà simile a questa

"C:\Users\Pav\AppData\Local\Google\Chrome SxS\Application\chrome.exe" --js-flags="--harmony-simd" 

Vecchia risposta:

È possibile provare in nodo prima verranno aggiunti a Chrome (stesso motore JavaScript)

  1. installare l'ultimo nodo da https://nodejs.org/en/

  2. Eseguire il JavaScript come "nodo --harmony-SIMD index.js "(il tuo codice in index.js)

  3. Stampa l'output dal tuo script proprio come nella console di Chrome utilizzando la console.log ('BANG') o fare il login ('TEST 2')

Opzione 2

soluzione Non Chrome, ma è possibile utilizzare SIMD in Firefox. Download Firefox Nightly che ha già integrato SIMD. SIMD è quasi identico tra i browser.

https://nightly.mozilla.org/

Se qualcuno potrebbe spiegare come costruire l'ultimo di cromo con SIMD nativa (non Polyfill come è ora) supporto che sarebbe grande.

+0

' --js-flags = "- harmony-simd" ' NON ha funzionato per me, in chrome 52.0.2743.116 m NOR nw.js 0.16.1 – Ciberman

+0

@Ciberman appena controllato con 52.0.2743.116 m 64 bit su Windows 10 e ha funzionato. Qual è il tuo campo "Target"? – Pawel

+0

Ho provato di nuovo e ha funzionato semplicemente. Non so perché. – Ciberman

1

Sembra che l'estensione di SIMD in Chromium sia experimental contribution by Intel from 2013.

È possibile provarlo in un special build of Chromium 37 (ia32). Fonte: IDF14 demo links.

Per provarlo download the build for your platform e iniziare con command-line flag--js-flags=--simd-object.

Per esempio, su OSX:

./Chromium.app/Contents/MacOS/Chromium --js-flags=--simd-object 

L'oggetto SIMD è disponibile nella console JavaScript:

var a = SIMD.float32x4(1, 2, 3, 4); 
var b = SIMD.float32x4(5, 6, 7, 8); 
var c = SIMD.float32x4.add(a,b); 
console.log(c.toString()) 
// > float32x4(6,8,10,12) 

sono riuscito a trovare alcuna informazione circa l'intenzione di fondere (ma mi piacerebbe sentire qualcosa autorevole).

+0

È possibile creare l'ultima versione di Chromium con il supporto SIMD. Ho visto una versione successiva di quella di Intel da qualche parte. Come farlo? – Pawel

+1

Ho provato questi, ma i nomi delle funzioni sono obsoleti. Sono diversi in Firefox ogni notte e Node i, e, float32x4 è Float32x4 – Pawel

+0

Funziona anche nella versione corrente del nodo (7.4): 'node --harmony-simd' –