MSI 7970 Lightning - Discussione ufficiale

mau9000

Utente Attivo
766
73
CPU
I5 2500
Scheda Madre
Saberthoot P67
HDD
WD7502AAEX
RAM
Corsair DDR3 16GB 1666 MHz
GPU
Asus GTX 560Ti Top
Monitor
P2370HD
PSU
Thermaltake TR2 RX 550W
Case
Thermaltake V Black Edition
OS
Windows 7 Pro 64bit
Complimenti, sei riuscito a spiegare e a far capire perfettamente a un ignorante come me. Hai un futuro come insegnante di informatica, davvero!
Posso approfittare e chiederti ancora un paio di cose?

Arigatou gozaimasu mau-senpai:inchino:

:asd: grazie; chiedi pure

---------- Post added at 10:40 ---------- Previous post was at 10:09 ----------

:asd: grazie; chiedi pure

ti voglio fare un esempio pratico; mettiamo il caso di voler fare un'addizione fra due numeri salvati in due registri diversi n ed m, ora la somma fra i due esiste un'istruzione asm semplice:

ADD $s $n $m

Questa istruzione salva nel registro s la somma del contenuto dei due registri; questo ha un ritardo di: Tadd = Tfetch + tadd = (2 tao + ta) + tao = 3 tao + ta

Ora la somma si può risolvere anche con un metodo ricorsivo, ovvero questo:

Loop: Beq $m $0 Esci (Branch if equal, ovvero se sono uguali salta all'etichetta, in questo caso se il contenuto del registro m è uguale a quello del registro 0 (che contiene la costante 0) salta all'etichetta Esc)
Addi $n $n 1 (Addiziona una costante al contenuto di un registro)
Addi $m $m -1 (Idem ma con una costante in complemento a due)
Jump Loop (Salto incondizionato)
Esci: Store $s[$i] $n (Scrive il contenuto del registro n in memoria ad indirizzo $s + $i)

Ora passiamo ai ritardi: Tadd = Tfetch + m * (tbeq + taddi + taddi + jump) + tstore = (2 tao + ta) + ((m+1) * (4 tao + ta)) + m * ((3 tao + ta) + (3 tao + ta) + (3 tao + ta) + (4 tao + 2 ta)

Entrambe eseguono una somma, questo per farti capire come può influenzare l'ottimizzazione delle istruzioni :asd:
 
Ultima modifica:

Chiccolino

UTENTE LEGGENDARIO
Utente Èlite
19,353
5,261
CPU
i7 4770k delidded
Dissipatore
EK Supremacy
Scheda Madre
Gigabyte Z87X-OC
HDD
Samsung 830 pro 256
RAM
2x4GB Samsung ultra low voltage
GPU
Gigabyte GTX 780Ti Windforce rev.1.0
Audio
Integrata
Monitor
BenQ XL2420T
PSU
XFX Pro Series 750W BE Silver
Case
Banchetto in plexi con liquido su CPU
OS
Windows 10 x64 Professional
:asd: grazie; chiedi pure
Generalmente che linguaggio si usa per scrivere i giochi?
Per quanto riguarda il linguaggio macchina ne sapevo ben poco, è molto diverso da un linguaggio come c o java?
Per aumentare le prestazioni di un computer quindi la cosa più ovvia da fare sarebbe diminuire questi tempi τ di latenza tra conversione tra linguaggio del software e linguaggio macchina. In che modo è possibile farlo?
I dati che si scambiano cpu e gpu passano dal pci ex per il chipset per arrivare alla cpu giusto?
Grazie ancora professor:ok:

---------- Post added at 10:46 ---------- Previous post was at 10:40 ----------

:asd: grazie; chiedi pure

---------- Post added at 10:40 ---------- Previous post was at 10:09 ----------



ti voglio fare un esempio pratico; mettiamo il caso di voler fare un'addizione fra due numeri salvati in due registri diversi n ed m, ora la somma fra i due esiste un'istruzione asm semplice:

ADD $s $n $m

Questa istruzione salva nel registro s la somma del contenuto dei due registri; questo ha un ritardo di: Tadd = Tfetch + tadd = (2 tao + ta) + tao = 3 tao + ta

Ora la somma si può risolvere anche con un metodo ricorsivo, ovvero questo:

Loop: Beq $m $0 Esci (Branch if equal, ovvero se sono uguali salta all'etichetta, in questo caso se il contenuto del registro m è uguale a quello del registro 0 (che contiene la costante 0) salta all'etichetta Esc)
Addi $n $n 1 (Addiziona una costante al contenuto di un registro)
Addi $m $m -1 (Idem ma con una costante in complemento a due)
Jump Loop (Salto incondizionato)
Esci: Store $s[$i] $n (Scrive il contenuto del registro n in memoria ad indirizzo $s + $i)

Ora passiamo ai ritardi: Tadd = Tfetch + m * (tbeq + taddi + taddi + jump) + tstore = (2 tao + ta) + ((m+1) * (4 tao + ta)) + m * ((3 tao + ta) + (3 tao + ta) + (3 tao + ta) + (4 tao + 2 ta)

Entrambe eseguono una somma, questo per farti capire come può influenzare l'ottimizzazione delle istruzioni :asd:
oddio qui mi hai fatto fare un pò di casino sui ritardi:look::asd:
ma scusa perchè uno dovrebbe inventarsi un loop così inca__ato (sono qui davanti al pc con carta e penna che cerco di capire il set di istruzioni e ritardi:asd:) per fare una operazione così semplice?!

Comunque l'esempio è perfettamente calzante:ok:

Edit: Secondo te quanto ci mette frizz a bannarci dal 3d per ot?:lol:
 

mau9000

Utente Attivo
766
73
CPU
I5 2500
Scheda Madre
Saberthoot P67
HDD
WD7502AAEX
RAM
Corsair DDR3 16GB 1666 MHz
GPU
Asus GTX 560Ti Top
Monitor
P2370HD
PSU
Thermaltake TR2 RX 550W
Case
Thermaltake V Black Edition
OS
Windows 7 Pro 64bit
Generalmente che linguaggio si usa per scrivere i giochi?
Per quanto riguarda il linguaggio macchina ne sapevo ben poco, è molto diverso da un linguaggio come c o java?
Per aumentare le prestazioni di un computer quindi la cosa più ovvia da fare sarebbe diminuire questi tempi τ di latenza tra conversione tra linguaggio del software e linguaggio macchina. In che modo è possibile farlo?
I dati che si scambiano cpu e gpu passano dal pci ex per il chipset per arrivare alla cpu giusto?
Grazie ancora professor:ok:

a 22 anni già professore, chiedo al signor Monti se mi assume :sisi: .

1) Linguaggi C++, C, Assembler, linguaggi script proprietari;
2)Abbastanza, il linguaggio macchina sono sequenze di bit, forse quello che intendevi tu è il linguaggio ASM che poi viene assemblato dall'assemblatore e trasformato in codice macchina (del linguaggio ASM ti ho fatto un esempio sopra);
3)Esempio sopra
4)I dati passano per reti sequenziali sotto forma di impulsi che noi interpretiamo come bit, a seconda di come è implementata la rete ed a seconda dell'input hai un certo output, infatti:

sigma(q,x) -> q funzione di transizione dello stato interno (ovvero in un certo stato con un certo imput vai a finire in un altro stato diverso da stato finale)
omega(q,x) -> z funzione delle uscite (ovvero in un certo stato con un input vai a finire in uno stato finale, perciò le uscite non dipendono solo dall'input ma anche dallo stato interno della macchina)

---------- Post added at 10:55 ---------- Previous post was at 10:53 ----------

Edit: Secondo te quanto ci mette frizz a bannarci dal 3d per ot?:lol:

nel mio caso spero niente, essendo entrambi coregionali :lol:

---------- Post added at 10:57 ---------- Previous post was at 10:55 ----------

oddio qui mi hai fatto fare un pò di casino sui ritardi:look::asd:
ma scusa perchè uno dovrebbe inventarsi un loop così inca__ato (sono qui davanti al pc con carta e penna che cerco di capire il set di istruzioni e ritardi:asd:) per fare una operazione così semplice?!

Comunque l'esempio è perfettamente calzante:ok:

semplicemente questo loop agisce in questo modo: abbiamo due numeri n ed m da sommare se m (secondo numero) != 0 allora fai l'incremento +1 di n (primo numero) e decrementi -1 m; questo finchè m non è uguale a 0 ;). Alla fine restituisci n.
 
  • Mi piace
Reazioni: Chiccolino

Chiccolino

UTENTE LEGGENDARIO
Utente Èlite
19,353
5,261
CPU
i7 4770k delidded
Dissipatore
EK Supremacy
Scheda Madre
Gigabyte Z87X-OC
HDD
Samsung 830 pro 256
RAM
2x4GB Samsung ultra low voltage
GPU
Gigabyte GTX 780Ti Windforce rev.1.0
Audio
Integrata
Monitor
BenQ XL2420T
PSU
XFX Pro Series 750W BE Silver
Case
Banchetto in plexi con liquido su CPU
OS
Windows 10 x64 Professional
Ah scusa, inizialmente pensavo che l'ASM di cui sopra coincidesse col linguaggio macchina.
La storia delle funzioni di transito e ti uscita non la sapevo: interessante come cosa.
Queste cose mi intrippano parecchio, sul serio, quasi quanto l'amore della mia vita, la fisica!:love:

Che dire: esaustivo, davvero! Arigatou!

Lascio io una raccomandazione al nostro premier per te!:lol:

---------- Post added at 11:03 ---------- Previous post was at 11:01 ----------

semplicemente questo loop agisce in questo modo: abbiamo due numeri n ed m da sommare se m (secondo numero) != 0 allora fai l'incremento +1 di n (primo numero) e decrementi -1 m; questo finchè m non è uguale a 0 ;). Alla fine restituisci n.
chiaro!
Però con la storia dei ritardi mi sono un pò perso, lasciami ancora un pò di tempo per analizzare la cosa:rolleyes:
 
  • Mi piace
Reazioni: mau9000

mau9000

Utente Attivo
766
73
CPU
I5 2500
Scheda Madre
Saberthoot P67
HDD
WD7502AAEX
RAM
Corsair DDR3 16GB 1666 MHz
GPU
Asus GTX 560Ti Top
Monitor
P2370HD
PSU
Thermaltake TR2 RX 550W
Case
Thermaltake V Black Edition
OS
Windows 7 Pro 64bit
Ah scusa, inizialmente pensavo che l'ASM di cui sopra coincidesse col linguaggio macchina.
La storia delle funzioni di transito e ti uscita non la sapevo: interessante come cosa.
Queste cose mi intrippano parecchio, sul serio, quasi quanto l'amore della mia vita, la fisica!:love:

Che dire: esaustivo, davvero! Arigatou!

Lascio io una raccomandazione al nostro premier per te!:lol:

ultima cosa, ti scrivo l'istruzione add in microprogramma:

add. R[IR{14..19}]+R[IR{20..25}] -> R[IR{8..13}] | IC+1 -> IC, fetch0 Questo è fatto con assegnamenti in parallelo. Quello che vedi dentro le parentesi grafe sono le posizioni dei bit corrispondenti ai valori all'interno deri registri; le freccie sono gli assegnamenti ai registri e le barre verticali significa che viene eseguito in parallelo.

La moltiplicazione te la mostro giusto per farti divertire ancora :lol::

mul. R[IR{14..19}] -> A | R[IR{20..25}] -> B | 0 -> M, mul0
mul0. (A{0} B{0} = 0 0) 0 -> S, mul1
(= 0 1) 1 -> S | 0-B -> B, mul1
(= 1 0) 1 -> S | 0-A -> A, mul1
(= 1 1) 0 -> S | 0-A -> A | 0-B -> B, mul1
mul1. (zero(B) S B{31} = 0 _ 0) shl(A) -> A | shr(B) -> B, mul1
(= 0 _ 1) shl(A) -> A | shr(B) -> B | M+A -> M, mul1
(= 1 0 _) M -> R[IR{8..13}] | IC+1 -> IC, fetch0
(= 1 1 _) 0-M -> R[IR{8..13}] | IC+1 -> IC, fetch0

La ricorsione è il ragionamento migliore secondo me :love:
 
  • Mi piace
Reazioni: Chiccolino

Chiccolino

UTENTE LEGGENDARIO
Utente Èlite
19,353
5,261
CPU
i7 4770k delidded
Dissipatore
EK Supremacy
Scheda Madre
Gigabyte Z87X-OC
HDD
Samsung 830 pro 256
RAM
2x4GB Samsung ultra low voltage
GPU
Gigabyte GTX 780Ti Windforce rev.1.0
Audio
Integrata
Monitor
BenQ XL2420T
PSU
XFX Pro Series 750W BE Silver
Case
Banchetto in plexi con liquido su CPU
OS
Windows 10 x64 Professional
Senpai sei un super programmatore!:ok:

Adesso per colpa tua dovrò stare sveglio tutta la notte fino a che non ho capito un pò queste istruzioni!:lol:
Dammi qualche riferimento che vado un pò a studiare per la felicità del mio ex prof. di programmazione (C e C++)
 

naruto80

Utente Èlite
17,384
2,834
CPU
intel i5 6600k@45x
Dissipatore
liquido
Scheda Madre
Gigabyte Z170 Gaming 5
HDD
samsung 850 pro 512gb + ocz arc 240gb + WD Red 2TB + WD Black 1TB
RAM
4x4GB PANRAM 3000C15
GPU
Sapphire 390X Tri-X OC
Audio
integrato+creative i-trigue 3330+ CM Storm sirus 5.1
Monitor
Asus MG279Q
PSU
evga GQ 850W
Case
Xigmatek Elisyum
Periferiche
Gskill KM780 & Gskill MX 780 RGB
OS
win 10 pro 64bit
domani ve li do io i conti da fare...:asd::asd:
 
  • Mi piace
Reazioni: mr.frizz

Chiccolino

UTENTE LEGGENDARIO
Utente Èlite
19,353
5,261
CPU
i7 4770k delidded
Dissipatore
EK Supremacy
Scheda Madre
Gigabyte Z87X-OC
HDD
Samsung 830 pro 256
RAM
2x4GB Samsung ultra low voltage
GPU
Gigabyte GTX 780Ti Windforce rev.1.0
Audio
Integrata
Monitor
BenQ XL2420T
PSU
XFX Pro Series 750W BE Silver
Case
Banchetto in plexi con liquido su CPU
OS
Windows 10 x64 Professional

mau9000

Utente Attivo
766
73
CPU
I5 2500
Scheda Madre
Saberthoot P67
HDD
WD7502AAEX
RAM
Corsair DDR3 16GB 1666 MHz
GPU
Asus GTX 560Ti Top
Monitor
P2370HD
PSU
Thermaltake TR2 RX 550W
Case
Thermaltake V Black Edition
OS
Windows 7 Pro 64bit
Senpai sei un super programmatore!:ok:

Adesso per colpa tua dovrò stare sveglio tutta la notte fino a che non ho capito un pò queste istruzioni!:lol:
Dammi qualche riferimento che vado un pò a studiare per la felicità del mio ex prof. di programmazione (C e C++)

:lol: shl significa shift left, viene eseguito da una alu e non fa altro che shiftare i bit verso sinistra di una parola a 32 bit (o 64, dipende dalla specifica dell'alu); quello tra parentesi tonde vicindo all'etichetta, è un case e le varie combinazioni di bit sono le guardie, ovvero i vari casi/combinazioni che possiamo avere, esempio 3 bit possiamo avere 8 casi ovvero 2^3, cioè due valori 0 e 1 elevato per il numero di bit; il trattino basso significa che il valore assunto da quella variabile è indifferente; A{0} significa prendi il bit più significativo ovvero in posizione zero, che il complemento a due si riferisce al segno, se il suo valore è 1 è negativo, altrimenti positivo; zero(B) uscita di una ALU, dopo aver eseguito una sottrazione, non solo fornisce in output il risultato ma anche altri paramentri come il bit di zero, il bit di sgn(segno) ecc, se è impostato a 1 il bit di zero vale 1 perciò la differenza tra i due operandi vale 0 (o la somma fra due numeri di segno opposto), altrimenti il risultato della differenza è diversa da zero. Credo di averti spiegato i punti più critici, ora sta a te capire che fa :D
 
Ultima modifica:

Chiccolino

UTENTE LEGGENDARIO
Utente Èlite
19,353
5,261
CPU
i7 4770k delidded
Dissipatore
EK Supremacy
Scheda Madre
Gigabyte Z87X-OC
HDD
Samsung 830 pro 256
RAM
2x4GB Samsung ultra low voltage
GPU
Gigabyte GTX 780Ti Windforce rev.1.0
Audio
Integrata
Monitor
BenQ XL2420T
PSU
XFX Pro Series 750W BE Silver
Case
Banchetto in plexi con liquido su CPU
OS
Windows 10 x64 Professional
:lol: shl significa shift left, viene eseguito da una alu e non fa altro che shiftare i bit verso sinistra di una parola a 32 bit (o 64, dipende dalla specifica dell'alu); quello tra parentesi tonde vicindo all'etichetta, è un case e le varie combinazioni di bit sono le guardie, ovvero i vari casi/combinazioni che possiamo avere, esempio 3 bit possiamo avere 8 casi ovvero 2^3, cioè due valori 0 e 1 elevato per il numero di bit; il trattino basso significa che il valore assunto da quella variabile è indifferente; A{0} significa prendi il bit più significativo ovvero in posizione zero, che il complemento a due si riferisce al segno, se il suo valore è 1 è negativo, altrimenti positivo; zero(B) uscita di una ALU, dopo aver eseguito una sottrazione, non solo fornisce in output il risultato ma anche altri paramentri come il bit di zero, il bit di sgn(segno) ecc, se è impostato a 1 il bit di zero vale 1 perciò la differenza tra i due operandi vale 0 (o la somma fra due numeri di segno opposto), altrimenti il risultato della differenza è diversa da zero. Credo di averti spiegato i punti più critici, ora sta a te capire che fa :D
la vedo dura che riesca a capire ma grazie degli indizi.
ora vediamo se ne vengo a capo almeno di qualcosa..
mannaggia a te io dovrei studiare "disordered systems physics" che ho tra 10 giorni!:evil::asd:
 

mr.frizz

Utente Grafene
Utente Èlite
93,236
17,852
CPU
i7 2600k@4.5
Dissipatore
truespirit 140
Scheda Madre
msi z77a-g45
HDD
500 spinpoint f3 + 840 pro 256 + sandisk ultraII 240
RAM
2*4gb tridentZ 2133 cl9
GPU
Sapphire Rx 580 nitro oc+ 4GB
Audio
integrata
Monitor
lg m2232
PSU
corsair tx650v1
Case
Corsair 300r WW
OS
7 ultimate 64
si ma basta spammare,parlate di vga :asd:
 
  • Mi piace
Reazioni: Chiccolino

Chiccolino

UTENTE LEGGENDARIO
Utente Èlite
19,353
5,261
CPU
i7 4770k delidded
Dissipatore
EK Supremacy
Scheda Madre
Gigabyte Z87X-OC
HDD
Samsung 830 pro 256
RAM
2x4GB Samsung ultra low voltage
GPU
Gigabyte GTX 780Ti Windforce rev.1.0
Audio
Integrata
Monitor
BenQ XL2420T
PSU
XFX Pro Series 750W BE Silver
Case
Banchetto in plexi con liquido su CPU
OS
Windows 10 x64 Professional
@ mau: ti avevo detto che ce le sentivamo dal boss:lol: continuiamo in pm..:asd:
@ frizz: almeno è spam da veri appassionati e acculturati, infatti aspettavo qualche tua perla!:asd: quindi ti prego non bannarci:asd:
 
  • Mi piace
Reazioni: naruto80

mau9000

Utente Attivo
766
73
CPU
I5 2500
Scheda Madre
Saberthoot P67
HDD
WD7502AAEX
RAM
Corsair DDR3 16GB 1666 MHz
GPU
Asus GTX 560Ti Top
Monitor
P2370HD
PSU
Thermaltake TR2 RX 550W
Case
Thermaltake V Black Edition
OS
Windows 7 Pro 64bit

mr.frizz

Utente Grafene
Utente Èlite
93,236
17,852
CPU
i7 2600k@4.5
Dissipatore
truespirit 140
Scheda Madre
msi z77a-g45
HDD
500 spinpoint f3 + 840 pro 256 + sandisk ultraII 240
RAM
2*4gb tridentZ 2133 cl9
GPU
Sapphire Rx 580 nitro oc+ 4GB
Audio
integrata
Monitor
lg m2232
PSU
corsair tx650v1
Case
Corsair 300r WW
OS
7 ultimate 64
ok boss, come va la mia ex 460? :asd:

aspetto un 2700k poi vediamo a quanto arriva,ho preo i 930 sul core ma non ci ho ancora fatto niente di serio :asd:
 

mau9000

Utente Attivo
766
73
CPU
I5 2500
Scheda Madre
Saberthoot P67
HDD
WD7502AAEX
RAM
Corsair DDR3 16GB 1666 MHz
GPU
Asus GTX 560Ti Top
Monitor
P2370HD
PSU
Thermaltake TR2 RX 550W
Case
Thermaltake V Black Edition
OS
Windows 7 Pro 64bit

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!