Il compilatore utilizza il codice C per scrivere una volta e accelerare le CPU

Aggiornamento: 6 agosto 2023
Il compilatore utilizza il codice C per scrivere una volta e accelerare le CPU

Gli utenti possono generare codice per processori multi-core su architetture uguali o diverse e l'utilizzo di benchmark con variabili di runtime. È possibile regolare l'hardware, il consumo energetico o il numero di core e allocare altri processi per ottimizzare le prestazioni / W.

Clay Johnson, CEO di CacheQ Systems, ha descritto il compilatore come un punto di svolta. Gli sviluppatori di software possono "sfruttare appieno la potenza di elaborazione parallela senza passare anni a imparare a programmare con OpenMP o MPI", ha affermato. "Possono accelerare un algoritmo a thread singolo con i nostri strumenti per compilare e indirizzare rapidamente qualsiasi CPU con due o più core".

Gli strumenti della CacheQ Complier Collection consentono agli sviluppatori di software di creare e distribuire acceleratori hardware personalizzati per sistemi di elaborazione eterogenei tra cui FPGAS, CPU e GPU. la suite è modellata sulla suite di strumenti GNU Compiler Collection (GCC), inclusa un'interfaccia utente simile ai comuni compilatori open-source. Richiede una modifica del codice limitata che riduce i tempi di sviluppo, spiega l'azienda.

La suite di strumenti consente la compilazione, il linting e il rilevamento degli errori, la previsione delle prestazioni, la creazione di profili, il debug e la visualizzazione del motore virtuale generato. La raccolta del compilatore CacheQ supporta il codice C e C ++ tramite l'accesso ibrido di una chiamata di funzione esportata.

L'azienda fornisce benchmark per server di fascia alta e dispositivi elettronici di consumo, ad esempio, la simulazione di un processore Apple M1 con due core ha superato il chip x86 con 11 core e un processore M1 con quattro core eseguito il 210% più veloce dell'x86 con 12 core . Nel complesso, il compilatore ha eseguito l'1,476% più velocemente rispetto al GCC a thread singolo in esecuzione su x86 utilizzando la raccolta del compilatore CacheQ eseguita sullo stesso codice.

Gli strumenti del compilatore vengono ora forniti tramite un programma ad accesso limitato.