2012-02-07 16 views
29

Qualcuno sa se ci sono piani per sviluppare il supporto in g ++ (GCC) per il nuovo standard C++ AMP che era released recentemente da Microsoft come open specification? Vedo che qualcuno è already asking about Intel support in their forums. Ma non ho visto nulla per GCC.GCC supporta C++ AMP

+0

Non sembra uno * standard * per me - sembra anche essere solo per Windows? –

+9

C++ AMP è uno standard aperto creato in Microsoft. Sì, è attualmente solo Windows, ma questo è l'intero punto della domanda ... – ltjax

+0

Secondo il blog su MSDN è una "specifica aperta" ed è basata su DirectX. –

risposta

9

Se lo standard diventa un vero standard ISO, probabilmente lo sarà in futuro, ma praticamente qualsiasi cosa sotto licenza MS-PL viene sempre affrontata con cautela dalla FSF (grandi parti di Mono per esempio). Richard Stallman è molto contrario all'uso del codice aperto di Microsoft e ha ancora molti legami, anche se per lo più politici, con il GCC, quindi dubito che le specifiche attuali di AMP saranno supportate. È probabile che qualsiasi supporto open source provenga dal progetto Clang. La loro licenza di stile BSD è molto più permissiva e la comunità intorno a essa è più aperta alla collaborazione con entità commerciali.

Aggiornamento: ho digitato in modo errato EFF (Electronic Frontier Foundation), con l'intenzione di scrivere FSF (Free Software Foundation). Grazie Max Laybbert per averlo indicato.

+1

So che è tardi, ma devo fare il pasticcio: la FSF (Free Software Foundation) è l'organizzazione dietro GCC, non l'EFF (Electronic Frontier Foundation, che di solito è dietro le cause di archiviazione). Sono due organizzazioni separate senza alcuna connessione formale tra loro. –

+1

Hai ragione, mi dispiace, ho confuso le mie sigle. Quel che è peggio è che lavoro per il governo, si tratta di acronimi qui intorno. –

+4

Poiché si tratta di una specifica, non di un codice sorgente, MS-PL non si applica. Microsoft ha diritto d'autore sul documento, sebbene con alcune sovvenzioni rilevanti, e conferisce diritti di brevetto in base alla "Promessa della comunità": http://www.microsoft.com/openspecifications/en/us/programs/community-promise/default.aspx So non è davvero niente contro cui Stallman possa saggiamente discuterne: non che lo abbia mai fermato. –

10

Il article oltre ad Ars dice: >

AMP è stato sviluppato da Microsoft con il contributo di AMD e NVIDIA. L'implementazione di Microsoft consente ai programmi AMP di utilizzare sia le principali schede video CPU e Direct3D (tramite l'API DirectCompute dell'azienda), anche se le specifiche dovrebbero consentire implementazioni basate su OpenGL/OpenCL .

Microsoft incoraggia altri sviluppatori di compilatori a implementare la tecnologia . La specifica pubblicata include al suo interno una promessa irrevocabile per non rivendicare rivendicazioni su eventuali brevetti che Microsoft possa ritenere rilevanti per AMP a meno che la parte in causa non faccia causa alla violazione di brevetto Microsoft.

Non riesco a rispondere alla domanda originale, che mi sembra interessante, ma la citazione di cui sopra da Ars fa riferimento ad alcuni dei commenti che sono già stati pubblicati.

+2

IANAL ma questo mi sembra un cavallo di Troia. In primo luogo sembra incompatibile con la GPL, quindi GCC non può tollerare. Inoltre sarebbe difficile vederlo in Clang, dal momento che se non lo usano né Apple né Google (2 principali utenti e contributori di Clang) sarebbero in grado di far valere i loro brevetti (ma il contrario non sarebbe vero) . Alla fine mi chiedo fino a che punto gocciolerebbe, cioè se uso Clang con C++ AMP per fare il mio programma, non sarei più in grado di denunciare Microsoft? Quindi non mi sorprende che siano compilatori 'incoraggianti' di usare la tecnologia. –

+1

L'implementazione, che non è open source (MS-PL o altro), non è la stessa della specifica.Se una terza parte decidesse di implementare la specifica, potrebbero esserci problemi di tipo IP/genitore se Microsoft rivendicasse brevetti sul materiale descritto nelle specifiche. Tuttavia è più difficile difendere un brevetto che è stato reso di dominio pubblico e presumibilmente qualsiasi implementatore serio risolverebbe tali problemi prima di distribuire il proprio lavoro. –