Corsette domenicali: proviamo a non buttare plastica

Oggi ce l’ho un po’con il mondo intero per un non ben precisato motivo. Capita, capita a tutti. È in questi giorni però che cerco di tramutare un po’ di negatività in qualcosa di utile.

Me ne stavo li, in mezzo alla strada alle 8 di sera a correre, con la pioggia in testa e mi chiedevo, ma è mai possibile che alle garette di paese si consumi così tanta plastica per i bicchieri nei ristori?

Quindi ho partorito questa semplice idea: chi partecipa alle garette, se vuole bere, si porta il bicchiere da casa.

Esempio, 2 euro su Amazon e passa la paura

Ora dopo gli insulti che mi state tirando, veniamo a rispondere alle vostre domande:

1) Ma se vengo alla garetta e non lo sapevo di sta regola che faccio? Semplice, al tavolo delle iscrizioni, al costo di 2 euro in più, ti vendono IL TUO BICCHIERE PERSONALE PIEGHEVOLE ™

2) Ma come!? Devo fermarmi 3 secondi a farmi riempire il bicchiere e così facendo non riuscirò a battere il mio PR su strava della mezza maratona!?!?#&$¥ Svegliati, stai correndo un cacchio di garetta di paese, che cacchio te ne frega del tuo tempino del menga?

3) Ma non voglio portarmi in giro un bicchiere per tutta la corsa, e’ scomodissimo!!?!?€&*#!! Signori vedo gente con tutto e di più addosso nelle garette: portare un cacchio di bicchiere legato al polso, o addirittura nel taschino del gilet non credo vi faccia sprecare molte energie.

Se siete arrivati fin qua, significa che o siete messi peggio di me, oppure che la mia idea non è così malsana. Quindi quello che propongo è che ognuno, nel proprio piccolo, cerchi di propagandare questa piccola idea all’interno del proprio gruppo di corsa, sperando,un giorno, di partecipare ad una garetta #bicchierinofree

SYCL: diamo un boost ai nostri algoritmi con la GPU

Da qualche giorno (in realtà fine settembre 2019) Intel ha rilasciato LLVM 9.0.0 che porta con se una grandissima novità: un supporto a SYCL perfettamente funzionante.

Per chi non conoscesse SYCL, riporto qui la descrizione di wikipedia:

SYCL (pronuncia “sickle”) è un layer di astrazione gratuito e multipiattaforma progettato sui concetti di portabilità e di efficienza di OpenCL, che permette al codice di piattaforme eterogenee di essere scritto in uno stile “a sorgente singola”, utilizzando completamente lo standard C++. SYCL consente lo sviluppo di una sola sorgente in cui le funzioni di modello C ++ possono contenere sia il codice host (cpu) che quello per il dispositivo (gpu/fpga/arm) al fine di costruire algoritmi complessi che utilizzano l’accelerazione OpenCL e quindi poter riutilizzare tutto il loro codice sorgente su diversi tipi di hardware e di dati. La possibilità, per gli sviluppatori, di non essere costretti a tener conto del dispositivo su cui il programma girerà (necessario in OpenCL), rende molto più semplice e lineare la programmazione.

In breve: potete accelerare i vostri algoritmi usando la GPU!
Quante volte avete raggiunto il limite di un sistema e siete stati costretti a dover upgradare la CPU o addirittura rivoluzionare un algoritmo perfettamente funzionante per cercare di limitare qualche millisecondo ad ogni iterazione?

Beh LLVM + SYCL potrebbero essere una manna dal cielo in queste situazioni.
In particolare ho provato per voi alcuni esempi (trovate tutto qui https://github.com/cagnulein/sycl-benchmarks):
Un semplice FOR da 500.000.000 di iterazioni, comprensivo di una moltiplicazione di una tan per un atan richiede circa 107 secondi per essere eseguito su una CPU intel di settima generazione. Bene, se questo stesso algoritmo lo fate girare su GPU (la stessa GPU integrata della stessa CPU presa in considerazione prima) passerete da 107 secondi a soli 4.8 secondi! Si avete letto bene, 4.8 secondi!

Non vi resta che sporcarvi le mani voi stessi seguendo questo bell’articolo http://pramodkumbhar.com/2019/07/intels-one-api-what-we-know-and-how-to-get-ready/

Se avete dubbi chiedete pure.