GPU vs CPU: Migliorare le Prestazioni di Cinema 4D con CUDA

Forum per: Modellazione, Texturing, Animazione, Composting e tutto quello che riguarda il normale utilizzo di Cinema4D.

Moderatori: Arkimed, natas, visualtricks, cappellaiomatto

  • Advertising
Avatar utente
abe3d
Messaggi: 1136
Iscritto il: lun dic 07, 2009 1:48 pm

Re: GPU vs CPU: Migliorare le Prestazioni di Cinema 4D con CUDA

Messaggio da abe3d »

Non mi fate commuovere :?: :P
Devo fare il punto della situazione perché sto impazzendo appresso a questo cacchio di codice :lol:

Aggiunto il supporto a CuPy, gli ndarray sono sicuramente gestiti meglio, ma le prestazioni sono li (30/35 FPS), io lo so di chi è la colpa ma, non lo diciamo!! Ammetto che ci ho messo quasi un'ora a farlo funzionare perché sono un deficiente e non mi ero accorto di aver sbagliato versione. Adesso si tratta di ottimizzare (non vorrei tediare nessuno con un altro paginone),devo rallentare...

Aver aumentato i vertici interattivi del cucchiaio ha reso la "dinamica" più gradevole e anche se ci sono alcuni artefatti, me ne sbatto, a me interessano solo le prestazioni :!:
https://youtu.be/-XNJYmDrn74
vlcsnap-2024-08-02-17h44m44s755.png
vlcsnap-2024-08-02-17h44m44s755.png (725.22 KiB) Visto 1997 volte

Adesso penso che passero allo splash
https://www.c4dzone.com/it/forum/viewto ... sh#p212335
https://youtu.be/8er24yGtkv4
che, anche se può sembrare pertinente, ha una caratteristica del tutto diversa, finora il dataset era immutato, qui invece va creato dinamicamente...vediamo che ne esce!
Se le dimensioni del seno di una donna non sono direttamente proporzionali alla sua massa corporea, allora sono sicuramente inversamente proporzionali alla sua intelligenza.
Avatar utente
abe3d
Messaggi: 1136
Iscritto il: lun dic 07, 2009 1:48 pm

Re: GPU vs CPU: Migliorare le Prestazioni di Cinema 4D con CUDA

Messaggio da abe3d »

Prima di passare ad altro, volevo condividere questo test di repulsione morbida: Le "particelle", che, voglio ricordare sono punti mesh, cercano una posizione evitando qualsiasi collisione tra loro.

Si basa sul primo test (TP Real-Time 3D flocking on GPU https://www.c4dzone.com/it/forum/viewtopic.php?t=35613) in cui però utilizzavo Thinking Particles e il dataset non era dinamico.

Qui vengono generate dal codice 30 particelle per frame, per un totale di 15000 particelle, la funzione CUDA si occupa di calcolare la loro posizione rispetto alle altre e di generare una repulsione morbida. Calcola anche la reazione alla presenza di un pivot.

Ho cercato di mantenere il codice leggero per mostrare prestazioni "pulite" (il più possibile).

In conclusione possiamo vedere come la GPU funzioni allo stesso modo anche per l'esportazione alambicco (o qualsiasi altro caso di creazione di una cache).

https://youtu.be/N5WIwtof1UM

Sto ancora lavorando con Numpy (sarà totalmente sostituito da CuPy in futuro), sperimentando la sincronizzazione dei blocchi CUDA e l'utilizzo della memoria condivisa.
Allegati
Immagine 2024-08-08 164914.png
Immagine 2024-08-08 164914.png (476.61 KiB) Visto 1907 volte
Se le dimensioni del seno di una donna non sono direttamente proporzionali alla sua massa corporea, allora sono sicuramente inversamente proporzionali alla sua intelligenza.
Avatar utente
abe3d
Messaggi: 1136
Iscritto il: lun dic 07, 2009 1:48 pm

Re: GPU vs CPU: Migliorare le Prestazioni di Cinema 4D con CUDA

Messaggio da abe3d »

Più imparo su CUDA, su come poter fruttare la sue potenzialità e quali sono i suoi limiti in ambito python c4d, più cresce il numero di particelle che riesco a coinvolgere nella simulazione.
Questo scenario descrive una simulazione di interazioni tra particelle soggette alla legge di gravitazione universale (drogata) in una griglia 3D (o 2D) in cui ciascuna particella interagisce solo con quelle vicine portando la complessità computazionale da O(N²) a O(N) → (N*k) dove k è il numero di particelle contenute nelle 26 celle adiacenti + una (quella che contiene la particella in esame) nel caso di griglia 3D e 8 celle + una nel caso di griglia 2D.
In questo video non si vedono prestazioni realtime in viewport ma si intuisce cosa si può ottenere dal codice su cui sto lavorando.
Lasciatevi incantare dalla "fisica" delle particelle quando queste sono così tante...
vlcsnap-2024-09-03-19h09m04s733.png
vlcsnap-2024-09-03-19h09m04s733.png (720.5 KiB) Visto 941 volte
https://www.youtube.com/watch?v=lTljhHph9O0
Purtroppo mi sono scelto un campo infelice con youtube che ammazza le particelle con la sua compressione da schifo!
Se le dimensioni del seno di una donna non sono direttamente proporzionali alla sua massa corporea, allora sono sicuramente inversamente proporzionali alla sua intelligenza.
nysn
Messaggi: 122
Iscritto il: gio apr 07, 2022 5:28 pm

Re: GPU vs CPU: Migliorare le Prestazioni di Cinema 4D con CUDA

Messaggio da nysn »

spettacolare
ma youtube ti comprime pure se usi 265 e magari 4k?

forse le particelle le rileva come noise e cerca di pulire
Avatar utente
abe3d
Messaggi: 1136
Iscritto il: lun dic 07, 2009 1:48 pm

Re: GPU vs CPU: Migliorare le Prestazioni di Cinema 4D con CUDA

Messaggio da abe3d »

Grazie nysn.
In linea di massima è un problema antico intrinseco alla compressione stessa, di qualsiasi codec si tratti (l'Mpeg 2 faceva i quadrotti e il Dvx non andava molto meglio), d'altro canto se vuoi un file centinaia di volte più piccolo a qualcosa devi pur rinunciare (l'MP3 ai tempi ha scatenato una guerra tra puristi e ipoddisti, pur se dichiaratamene la compressione tagliava le frequenze "non udibili" il suono alla fine non era la stessa cosa, si diceva, magari l'orecchio non le sente ma il cuore si, un po come quando si andava ai concerti live della PFM ).
In questo caso si, partire da un file avi è meglio che importare un Mp4 e risoluzioni maggiori portano a minori artefatti, ma con le particelle, se superano una certa velocità non ci sono cacchi, la compressione le distrugge o le allunga per interi fotogrammi, un macello insomma...
Se le dimensioni del seno di una donna non sono direttamente proporzionali alla sua massa corporea, allora sono sicuramente inversamente proporzionali alla sua intelligenza.
nysn
Messaggi: 122
Iscritto il: gio apr 07, 2022 5:28 pm

Re: GPU vs CPU: Migliorare le Prestazioni di Cinema 4D con CUDA

Messaggio da nysn »

abe3d ha scritto: mer set 04, 2024 5:48 pm Grazie nysn.
In linea di massima è un problema antico intrinseco alla compressione stessa, di qualsiasi codec si tratti (l'Mpeg 2 faceva i quadrotti e il Dvx non andava molto meglio), d'altro canto se vuoi un file centinaia di volte più piccolo a qualcosa devi pur rinunciare (l'MP3 ai tempi ha scatenato una guerra tra puristi e ipoddisti, pur se dichiaratamene la compressione tagliava le frequenze "non udibili" il suono alla fine non era la stessa cosa, si diceva, magari l'orecchio non le sente ma il cuore si, un po come quando si andava ai concerti live della PFM ).
In questo caso si, partire da un file avi è meglio che importare un Mp4 e risoluzioni maggiori portano a minori artefatti, ma con le particelle, se superano una certa velocità non ci sono cacchi, la compressione le distrugge o le allunga per interi fotogrammi, un macello insomma...
hai proprio ragione, bei tempi andati...
ora per l'audio almeno c'è il FLAC
per i video i soliti compromessi...
cmq anche così il tuo lavoro è impressionante
ti giuro che sono stato a rivederlo almeno 3 volte perchè mi incantava hahaha
  • Advertising
Rispondi