Recessione globale per la fine della legge di Moore - pagina 7

 
Vladimir:

GPU = unità di elaborazione grafica (prodotta principalmente da Nvidia)

CPU = unità di elaborazione centrale (prodotta da Intel o AMD)

Entrambi sono processori. Non lo capite? Chiamate GPU una scheda o quello che volete ma è un processore con 3000 core se avete l'ultimo modello. Se hai un computer è una GPU, leggi nella tua documentazione che modello hai e quanti core ha.

CPU e GPU sono CPU diverse, intendo CPU.
 
Vladimir:

Nessuna malinconia, ma paura per il futuro, mio e degli altri...

Perché questa paura? Qual è il problema?

Non ci saranno nuovi computer, e allora? Tutto sarà come prima e non vedremo un altro Windows con un'interfaccia non più trasparente, ma lucida che divora tutte le risorse appena aggiunte.

 
Vladimir:

GPU = unità di elaborazione grafica (prodotta principalmente da Nvidia)

CPU = unità di elaborazione centrale (fatta da Intel o AMD)

Entrambi sono processori. Non lo capite? Chiamate GPU una scheda o quello che volete ma è un processore con 3000 core se avete l'ultimo modello. Se avete un computer è una GPU, leggete nella vostra documentazione quale modello avete e quanti core ha.

Parlando della CPU. La scheda può essere questa, può essere una semplice scheda, e la CPU sarà ancora lì. Dove sono le CPU con 3000 core?
 
Dmitry Fedoseev:
Il discorso riguarda la CPU. Una scheda può essere questo, una semplice scheda può essere quello, e ci sarà ancora una CPU. Dove sono le CPU con 3000 core?
Sono curioso di sapere anche questo.
 
Dmitry Fedoseev:
Il discorso riguarda la CPU. Una scheda può essere questo, una semplice scheda può essere quello, e ci sarà ancora una CPU. Dove sono le CPU con 3000 core?
Non capisco il senso della discussione. Lei ha sostenuto che le CPU si sono evolute per avere più core. Sono d'accordo e ho fatto un esempio di una GPU con 3000 core. E volete sapere perché non esiste una CPU con lo stesso numero di core, ho ragione? E cos'è che non le piace delle GPU? La CPU può essere la stessa o diversa. Se avete bisogno di molti core allora comprate la GPU corrispondente e programmate su di essa. Ma se non avete bisogno di molti core, allora è inutile discuterne. Il mio punto di vista è che lo sviluppo dei processori sulla via del multicore è iniziato nel 2004-2005. Quindi è improbabile che sia una novità dopo la fine della legge di Moore. Se non avete bisogno di core ora, non ne avrete bisogno neanche dopo il 2020.
 
Vladimir:
Non capisco il senso della discussione. Lei ha sostenuto che i processori si sono evoluti aumentando il numero di core. Sono d'accordo e ho fatto un esempio di GPU con 3000 core. E volete sapere perché non esiste una CPU con lo stesso numero di core, ho ragione? E cos'è che non le piace delle GPU? La CPU può essere la stessa o diversa. Se avete bisogno di molti core allora comprate la GPU corrispondente e programmate su di essa. Ma se non avete bisogno di molti core, allora è inutile discuterne. Il mio punto di vista è che lo sviluppo dei processori sulla via del multicore è iniziato nel 2004-2005. Quindi è improbabile che sia una novità dopo la fine della legge di Moore. Se non avete bisogno di core ora, non ne avrete bisogno neanche dopo il 2020.
Mi ricorda l'aneddoto sul taglio delle tonsille... ...con un autogen... attraverso uno zp.
 
Dmitry Fedoseev:
Mi ricorda l'aneddoto sul taglio delle tonsille... con un autogenoma... attraverso uno zp.

È più facile scrivere un programma per core CPU paralleli che per GPU? Il problema è lo stesso: il programmatore deve scervellarsi e decidere quali pezzi di un programma possono essere parallelizzati, scrivere codice speciale di parallelizzazione e così via. La maggior parte dei programmatori non soffre e scrive programmi single-core senza colpi di scena. Qual è il problema qui: mancanza di core o programmi che usano il multi-core? Penso che sia la seconda. Anche se vi do una CPU con 3000 core continuerete a scrivere programmi single core poiché non c'è differenza nella difficoltà di scrivere programmi per 3000 core e per 4 core. Quello che serve è un nuovo compilatore che possa rilevare automaticamente i pezzi di codice che possono essere messi in parallelo. Ma ancora una volta il progresso nella creazione di un tale compilatore non dipende dall'hardware ma dalla volontà dei programmatori di scrivere un tale compilatore. In tutto questo thread sto affermando che la possibilità di creare nuovo hardware dopo il 2020 sta diminuendo a causa dei progressi nella tecnologia dei semiconduttori e la riduzione delle dimensioni e del consumo di energia dei transistor. Nuovi materiali e transistor sono ancora all'orizzonte. Intel ha cercato di creare la generazione di processori Knight Hill su tecnologia 10nm nel 2016 e ha rimandato tale generazione fino alla fine del 2017. Anche Samsung ha problemi con la sua tecnologia a 10nm per i suoi processori di app. Già a 10nm, i transistor danno solo una piccola riduzione di dimensioni e potenza rispetto ai 14nm. La dissipazione del calore diventa un grosso problema. È necessario un salto di tecnologia. Uno degli indicatori della tecnologia è il prezzo per transistor. Quindi, quel prezzo stava scendendo prima dei 28nm, e dopo ha cominciato a salire in modo esponenziale. Molte aziende si sono fermate a 28nm a causa del prezzo. Quindi i progressi verso la tecnologia a 10nm e poi a 7nm e gli ultimi 5nm saranno accompagnati non solo da problemi di calore ma anche da un prezzo elevato.

 
Ora non ci sono problemi per il parallelismo, ma solo quando si usa una CPU. In C# si fa in 3 secondi. Piuttosto, il punto è che non c'è bisogno di un gran numero di core. Un normale programma medio non è un gran problema da parallelizzare. Se facciamo molti core, l'unico vantaggio sarà che si possono eseguire molti programmi diversi, ma non è davvero necessario.
 
Vladimir:

È più facile scrivere un programma per core CPU paralleli che per GPU?

È davvero difficile scrivere programmi efficienti sulle GPU.

In effetti, c'è ancora tutta un'area non sfruttata in termini di interazione tra dispositivi e tra dispositivi ed esseri umani.

C'è l'area delle nuvole, l'infilare tutto e tutti in esse, la decentralizzazione

C'è l'area degli assistenti intelligenti e dei dispositivi in generale.

C'è l'area della realtà aumentata e virtuale.

In breve, proprio a causa della legge di Moore non ci sarà recessione, ci sarà una ricerca di nuovi modi di sviluppo. Ci sarà una recessione per un'altra ragione

 
Vladimir:

È più facile scrivere un programma per core CPU paralleli che per GPU? Il problema è lo stesso: il programmatore deve scervellarsi e decidere quali pezzi di un programma possono essere parallelizzati, scrivere codice speciale di parallelizzazione e così via. La maggior parte dei programmatori non soffre e scrive programmi single-core senza colpi di scena. Qual è il problema qui: mancanza di core o programmi che usano il multi-core? Penso che sia la seconda. Anche se vi do una CPU con 3000 core continuerete a scrivere programmi single core poiché non c'è differenza nella difficoltà di scrivere programmi per 3000 core e per 4 core. Quello che serve è un nuovo compilatore che possa rilevare automaticamente i pezzi di codice che possono essere messi in parallelo. Ma ancora una volta il progresso nella creazione di un tale compilatore non dipende dall'hardware ma dal desiderio dei programmatori di scrivere questo compilatore.

R non ha i problemi descritti.

1. Molto probabilmente, non c'è bisogno di scrivere programmi per algoritmi computazionalmente complessi. Tutto è scritto e se un algoritmo computazionalmente complesso (per esempio, ottimizzazione o boosting) ammette il parallelismo, questo è già implementato. E non c'è bisogno di cercarlo da qualche parte. Uno sviluppatore parte dal contenuto del problema e adatta lo strumento a questo contenuto, e tutto è implementato nello strumento al massimo. Lo strumento ha un sistema di aiuto molto potente destinato a rendere lo strumento meno laborioso.

2. Se è necessario, per esempio, eseguire sezioni parallele di un ciclo, ci sono strumenti di parallelizzazione disponibili. Nel descrivere la sintassi di tali costruzioni e le condizioni del loro utilizzo non c'è bisogno di perdere tempo.

3. Il programma può caricare non solo il nucleo del computer dato, ma anche i computer vicini. Questo senza alcuna nuvola, per così dire, dai computer disponibili.

I problemi che hai descritto sono dovuti al fatto che vai dal ferro, attraverso linguaggi algoritmici universali e non raggiungi il problema. Se vai al contrario - dal problema alla scelta dello strumento, potresti non dover discutere affatto dell'hardware.

Ecco perché ripeto la conclusione che ho tratto sopra: tutti questi gigahertz hanno ben poca relazione con l'efficienza di esecuzione dei programmi. Proprio come non abbiamo notato l'aumento dei gigahertz negli ultimi 15 anni, non noteremo che questi stessi gigahertz hanno smesso di crescere.