Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ECS Liva Q3 Plus, quando il mini-PC è davvero mini
ECS Liva Q3 Plus, quando il mini-PC è davvero mini
ECS Liva Q3 Plus è un mini-PC che sta in una mano e può essere impiegato in ambito embedded o casalingo per navigazione e produttività leggera. Il sistema può essere anche nascosto dietro un monitor grazie al supporto VESA. All'interno una APU AMD con 4 core / 8 thread e una GPU integrata Vega 8.
Dagli smartphone ai PC e alle periferiche di gioco: il futuro di Qualcomm
Dagli smartphone ai PC e alle periferiche di gioco: il futuro di Qualcomm
Nella seconda giornata dello Snapdragon Tech Summit 2021 Qualcomm apre la strada alla sua evoluzione futura, fatta di smartphone ma anche di tutte le differenti tipologie di periferiche connesse che accompagnano la vita di ognuno di noi. Da questo nuovi chip specificamente pensati per i notebook con sistema operativo Windows 11 e per le console di gioco mobile
Nikon Z9: pazzesca la raffica a 120 fps. Ecco il nostro primo contatto
Nikon Z9: pazzesca la raffica a 120 fps. Ecco il nostro primo contatto
La raffica a 120 fotogrammi al secondo a 11 megapixel di risoluzione è certamente una delle caratteristiche che più colpisce di Nikon Z9, che porta definitivamente l'ammiraglia sportiva di casa Nikon sul fronte mirrorless. Ecco il nostro primo contatto con questa fotocamera sportiva professionale, che mette a disposizione 45,7 megapixel a 20 fps, video 8K e un autofocus con riconoscimento avanzato dei soggetti, allenato dall'intelligenza artificiale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-05-2009, 19:15   #1
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 25849
[PYTHON, C] Beyond bytecode: a wordcode-based Python

Ho finito poco fa di creare su Google Code tutto il materiale relativo al mio progetto, che potete anche scaricare con SubVersion.

Trovate tutto a questo indirizzo.

Nella sezione download trovate le slide che ho presentato alla PyCon3 in formato sia PowerPoint che PDF.

Le critiche, manco a dirlo, sono bene accette (se costruttive), come pure eventuali richieste di chiarimento (a cui risponderò non appena possibile ).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT. Fanboys
cdimauro è online   Rispondi citando il messaggio o parte di esso
Old 13-05-2009, 23:49   #2
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 25849
Segnalo un resoconto della seconda giornata della PyCon3, in cui si parla anche del mio talk.

E un mio articolo incentrato sul solo talk che ho tenuto.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT. Fanboys
cdimauro è online   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 11:31   #3
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Ci capisco poco e niente di quello che hai scritto nell'articolo (che era decisamente interessante)...
cmq complimenti per l'idea e per il lavoro, sembra davvero un passo avanti anche "ad occhio"

Ma esistono altri linguaggi che usano le words per le istruzioni?
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 12:09   #4
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 25849
Può darsi, ma non ne ho la minima idea.

Comunque se dai un'occhiata alle slide dovresti capire meglio come funziona.

Grazie comunque.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT. Fanboys
cdimauro è online   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 12:25   #5
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13826
Complimenti, ottimo lavoro

Ho leggiucchiato le slide e devo dire che hai avuto una gran bella idea
In media credo che una riduzione del numero di istruzioni per programma in un interprete identifichi un aumento prestazionale proprio per il fatto che bisogna stare meno nel ciclo di decoding delle istruzioni.
Ma l'aumento prestazionale in media quant'è? Ho visto dalle slide le percentuali su pybench e sembra una percentuale altissima

A quando l'introduzione nella mainline?

Ha qualche problema di compatibilità questo sistema o funziona bene con tutti i programmi python?

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 12:31   #6
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4660
Quote:
Originariamente inviato da AnonimoVeneziano Guarda i messaggi
Complimenti, ottimo lavoro

Ho leggiucchiato le slide e devo dire che hai avuto una gran bella idea
In media credo che una riduzione del numero di istruzioni per programma in un interprete identifichi un aumento prestazionale proprio per il fatto che bisogna stare meno nel ciclo di decoding delle istruzioni.
Ma l'aumento prestazionale in media quant'è? Ho visto dalle slide le percentuali su pybench e sembra una percentuale altissima

A quando l'introduzione nella mainline?

Ha qualche problema di compatibilità questo sistema o funziona bene con tutti i programmi python?

Ciao
Mi sembra abbia lavorato per la 2.6. Dovrebbe fare il backport per la 3.
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 12:33   #7
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 25849
Quote:
Originariamente inviato da AnonimoVeneziano Guarda i messaggi
Complimenti, ottimo lavoro

Ho leggiucchiato le slide e devo dire che hai avuto una gran bella idea
Grazie.
Quote:
In media credo che una riduzione del numero di istruzioni per programma in un interprete identifichi un aumento prestazionale proprio per il fatto che bisogna stare meno nel ciclo di decoding delle istruzioni.
Esattamente. Questa era l'idea che mi trascinavo da tempo.
Quote:
Ma l'aumento prestazionale in media quant'è? Ho visto dalle slide le percentuali su pybench e sembra una percentuale altissima
Ho messo soltanto i peggiori 10 e i migliori 10 risultati. Comunque il trend è del 20-25% circa di tempo in meno con PyBench.
Quote:
A quando l'introduzione nella mainline?
Prima devo rimuovere degli hack, altrimenti gli sviluppatori ufficiali mi seviziano (Guido in primis).
Quote:
Ha qualche problema di compatibilità questo sistema o funziona bene con tutti i programmi python?

Ciao
No, dovrebbe funzionare su tutto. A parte un paio di test su un caso molto particolare (le funzioni di tracing), l'intera batteria di test di Python viene eseguita con successo.

Diciamo che, risolto questo problemino (che riguarda più che altro i debugger, non le applicazioni comuni), dovrebbe essere pronta per andare in produzione a tutti gli effetti.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT. Fanboys
cdimauro è online   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 12:33   #8
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13826
Quote:
Originariamente inviato da ~FullSyst3m~ Guarda i messaggi
Mi sembra abbia lavorato per la 2.6. Dovrebbe fare il backport per la 3.
più che il backport un frontport
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 12:34   #9
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 25849
Quote:
Originariamente inviato da ~FullSyst3m~ Guarda i messaggi
Mi sembra abbia lavorato per la 2.6. Dovrebbe fare il backport per la 3.
Sì, chiaro.
Quote:
Originariamente inviato da AnonimoVeneziano Guarda i messaggi
più che il backport un frontport
In effetti...
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT. Fanboys
cdimauro è online   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 12:35   #10
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13826
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Diciamo che, risolto questo problemino (che riguarda più che altro i debugger, non le applicazioni comuni), dovrebbe essere pronta per andare in produzione a tutti gli effetti.
Ottimo, non vedo l'ora
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 12:36   #11
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53963
Complimenti Cesare
Bel progetto, molto interessante, soprattutto l'ideaa di evitare i salti rendendo il formato dell'opcode fisso.

Se hai bisogno di qualche test su Linux a 64 bit (Core 2 Duo 2.16 Ghz) sono disponibile, però mi dovresti fornire anche la suite di test

Ultima modifica di cionci : 14-05-2009 alle 12:50.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 12:46   #12
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Può darsi, ma non ne ho la minima idea.

Comunque se dai un'occhiata alle slide dovresti capire meglio come funziona.

Grazie comunque.
Letto le slides, è molto più chiaro ora.
Cmq pensavo che i linguaggi in VM funzionassero GIA' in questa maniera, che senso ha costringersi ad usare i byte quando il computer stesso li digerisce peggio?

Cmq le istruzioni in wordcode sono di una complessità eccessiva, fortuna che le scrive il compiler

Un'idea: vista la quantità di istruzioni che si hanno ora a disposizione, potrebbe essere possibile profilare il codice e trovare le sequenze di istruzioni più comuni, quindi creare un singolo super-opcode che faccia esattamente la stessa operazione?
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 12:50   #13
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 25849
Quote:
Originariamente inviato da cionci Guarda i messaggi
Complimenti Cesare
Bel progetto, molto interessante, soprattutto l'ideaa di evitare i salti rendendo il formato dell'opcode fisso.

Se hai bisogno di qualche test su Linux a 64 bit (Core 2 Duo 2.16 Ghz) sono disponibile, però mi dovresti fornire anche la suite di test
Grazie.

Ti do delle indicazioni intanto su come compilarlo su Linux, visto che c'è un mio amico che ha avuto qualche problema.

Dopo averlo configurato (con ./configure immagino), copia il mio file Python_ast.h su quello che è stato generato automaticamente.

Per i test, in Tools/pybench c'è il file pybench.py. Basta eseguirlo nel seguente modo (supponendo che python si trovi nella root):

python Tools/pybench/pybench.py -f pybench_results.log

e postare i risultati (magari compressi in formato zip). Così posso confrontarli con quelli della versione base (che si trovano nel sito del progetto).

Per PyStone, invece, basta eseguire questo:

python Lib/test/pystone.py

Ma è meglio farlo per un certo numero di volte, scartare il primo risultato e fare la media degli altri. Questo perché è un po' "ballerino" come test (almeno nelle macchine in cui l'ho provato).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT. Fanboys
cdimauro è online   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 12:55   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53963
Quote:
Originariamente inviato da Tommo Guarda i messaggi
Letto le slides, è molto più chiaro ora.
Cmq pensavo che i linguaggi in VM funzionassero GIA' in questa maniera, che senso ha costringersi ad usare i byte quando il computer stesso li digerisce peggio?
In effetti...

Comunque le strade da percorrere ora potrebbero essere molteplici: gli opcode a 16 bit rendono secondo me il parsing un filo inefficiente. Forse la dimensione migliore sarebbe 32 bit, ma ovviamente si perderebbero i vantaggi nel risparmio di spazio. Però con l'idea di Tommo la cosa potrebbe divenire interessante, la fusione di una sequenza di istruzioni in un solo opcode a 32 bit farebbe risparmiare ancora spazio e renderebbe il tutto più veloce (ovviamente senza mescolare opcode a 16 e a 32 bit).

Ultima modifica di cionci : 14-05-2009 alle 13:00.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 12:57   #15
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 25849
Quote:
Originariamente inviato da Tommo Guarda i messaggi
Letto le slides, è molto più chiaro ora.
Cmq pensavo che i linguaggi in VM funzionassero GIA' in questa maniera, che senso ha costringersi ad usare i byte quando il computer stesso li digerisce peggio?
Perché non è semplice altrimenti. Leggere singoli byte non ti crea problemi di endianess e di allineamento delle word, come ho scritto nell'apposita slide.

Con la mia soluzione ho dovuto prendere adeguate misure per garantire che il codice funzionasse sia su macchine little-endian che su macchine big-endian, e coi relativi problemi di allineamento (ad esempio su ARM non è possibile leggere word a indirizzi dispari).

Insomma, c'è da sbatterci un po' per avere una soluzione che sia compatta, performante, ma soprattutto... funzionante su modelli diversi dai bytecode.

Infine c'è da considerare anche l'architettura che si vuole creare, che in genere si pensa e realizza sulla base del linguaggio. Ad esempio la VM di Java è molto diversa da quella di .NET, ed entrambe le sono rispetto alla soluzione bytecode dell'attuale Python e della mia wordcode.
Quote:
Cmq le istruzioni in wordcode sono di una complessità eccessiva, fortuna che le scrive il compiler
Veramente le ho scritte io. Una per una.
Quote:
Un'idea: vista la quantità di istruzioni che si hanno ora a disposizione, potrebbe essere possibile profilare il codice e trovare le sequenze di istruzioni più comuni, quindi creare un singolo super-opcode che faccia esattamente la stessa operazione?
Già fatto.

Nel repository SVN in Tools trovi la cartella codebench che ho creato, in cui si trovano due applicazioni python da eseguire rigorosamente e rispettivamente per la versione bytecode e per quella wordcode.

Lanciate senza parametri compilano tutti i file .py che trovano nelle cartelle Lib e Tools, e riportano poi tutta una serie di statistiche.

E' così che ho trovato un bel po' di pattern a cui ho dedicato poi degli opportuni opcode.

Ce ne sarebbero altri, ma al momento ho altre cose da fare, per cui magari tornerò a metterci mano dopo che avrò stabilizzato il progetto.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT. Fanboys

Ultima modifica di cdimauro : 14-05-2009 alle 13:03. Motivo: Corretto SVB con SVN
cdimauro è online   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 13:00   #16
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 25849
Quote:
Originariamente inviato da cionci Guarda i messaggi
In effetti...

Comunque le strade da percorrere ora potrebbero essere molteplici: i dati a 16 bit rendono secondo me il parsing un filo inefficiente. Forse la dimensione migliore sarebbe 32 bit, ma ovviamente si perderebbero i vantaggi nel risparmio di spazio.
Non solo: si aumenterebbe anche il consumo di bandwidth, e aumenterebbero le istruzioni necessarie per estrarre i dati che servono (opcode e relativi parametri), in particolare sulle architetture big-endian.
Quote:
Però con l'idea di Tommo la cosa potrebbe divenire interessante, la fusione di una sequenza di istruzioni in un solo opcode a 32 bit farebbe risparmiare ancora spazio e renderebbe il tutto più veloce (ovviamente senza mescolare opcode a 16 e a 32 bit).
Lo faccio già.

Nella mia implementazione ho opcode a 16 e 32 bit, e alcune fanno un mare di lavoro (arrivo a eseguire gli stessi compiti di ben 4 istruzioni della vecchia implementazione).

Il modello che ho proposto non ha opcode di dimensione fissa: la dimensione è variabile, e attualmente posso avere istruzioni di 1, 2 o 3 word (quindi 2, 4 o 6 byte).

Un modello "CISC", appunto, che è il nome che ho dato a questa versione.

Altre VM, come quella di LUA ad esempio, utilizzano invece opcode a 32 bit di dimensione fissa.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT. Fanboys
cdimauro è online   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 13:02   #17
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4660
C'è poco da dire. Gran bel lavoro davvero. Mi stupisce sempre di più vedere quante cose conosci. Complimenti.
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 13:16   #18
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Capito...
cmq io intendevo "fortuna che all'utente finale le scrive il compiler"... lo so che al compiler le hai scritte te

La mia idea nasce proprio da questo punto: in pratica, creare un wordcode generator, che trova le sequenze più comuni in bytecode e genera le corrispondenti opcode, diverse per ogni programma.
Ovviamente il tutto non sarebbe solo a compile time, perchè una sequenza che compare una volta sola nel codice potrebbe essere ripetuta milioni di volte a runtime...

Quindi, dopo che lo fai girare un pò di tempo sulla tua applicazione, genera un wordcode "personale" che contiene words uniche per le parti critiche del tuo programma.
IMHO avrebbe senso, perchè ora che avete 32768 comandi disponibili è follia pensare di riempirli tutti a mano
Ovviamente, è solo un'idea random
__________________
*ToMmO*

devlog | twitter

Ultima modifica di Tommo : 14-05-2009 alle 13:18.
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 13:22   #19
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 25849
Quote:
Originariamente inviato da Tommo Guarda i messaggi
Capito...
cmq io intendevo "fortuna che all'utente finale le scrive il compiler"... lo so che al compiler le hai scritte te
Sì, avevo capito, e ho fatto una battuta giusto per sdrammatizzare un po'.
Quote:
La mia idea nasce proprio da questo punto: in pratica, creare un wordcode generator, che trova le sequenze più comuni in bytecode e genera le corrispondenti opcode, diverse per ogni programma.
Ovviamente il tutto non sarebbe solo a compile time, perchè una sequenza che compare una volta sola nel codice potrebbe essere ripetuta milioni di volte a runtime...

Quindi, dopo che lo fai girare un pò di tempo sulla tua applicazione, genera un wordcode "personale" che contiene words uniche per le parti critiche del tuo programma.
IMHO avrebbe senso, perchè ora che avete 32768 comandi disponibili è follia pensare di riempirli tutti a mano
Ovviamente, è solo un'idea random
Ho capito. Ci sono tre problemi con questa soluzione.

Il primo è che dipende tutto dal codice eseguito. Se n'è già discusso nella mailing list di Python, e purtroppo le prestazioni delle versioni "profile guided" dipendono appunto dal profilo scelto (es: template HTML, conversione dalla 2 alla 3, problema delle 8 regine, ecc. ecc.).

Il secondo è che gli opcode prodotti non sarebbero ottimizzati, perché non si può semplicemente prendere una sequenza di bytecode e tirare fuori una wordcode corrispondente. Le wordcode che ho creato arrivano da opportuni "tweak" che mi hanno permesso di compattare il più possibile le informazioni che mi interessavano in poco spazio (infatti al più utilizzo 2 word per le "macroistruzioni" più complesse).

Il terzo è che... la opcode table è rimasta di 256 elementi, e non 32768. Quindi c'è poco spazio, e infatti con le istruzioni che ho creato me ne sono mangiato già ben più della metà.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT. Fanboys
cdimauro è online   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 13:28   #20
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Ok come non detto

Ma prima i 256 opcode con cosa erano riempiti allora?
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


ECS Liva Q3 Plus, quando il mini-PC è davvero mini ECS Liva Q3 Plus, quando il mini-PC è dav...
Dagli smartphone ai PC e alle periferiche di gioco: il futuro di Qualcomm Dagli smartphone ai PC e alle periferiche di gio...
Nikon Z9: pazzesca la raffica a 120 fps. Ecco il nostro primo contatto Nikon Z9: pazzesca la raffica a 120 fps. Ecco il...
Qualcomm Snapdragon 8 Gen1 è il cuore degli smartphone Android del 2022 Qualcomm Snapdragon 8 Gen1 è il cuore deg...
Apple Watch 7 e Fitness+: connubio perfetto per la palestra in casa. La recensione Apple Watch 7 e Fitness+: connubio perfetto per ...
Questo computer portatile ha un prezzo s...
NVIDIA, che botta! L'acquisto di Arm sem...
PlayStation Plus, dicembre 2021: Godfall...
L'autenticazione? Basta una foto. Ne par...
Dichiarazioni shock del CEO Stellantis: ...
Come perdere 760.000 dollari: i 13 Bitco...
George Seurat "il pittore dei punti...
Cisco potenzia l'offerta SD-WAN e Thousa...
Intel Alder Lake: l'architettura ibrida ...
Max Biaggi (con la sua moto elettrica) b...
GeForce NOW RTX 3080 provato: ecco come ...
Tesla Model S Plaid, modificata da Fullm...
Laowa 85mm f/5.6 Macro APO 2:1, dimensio...
vivo rilascia Android 12 su tutti gli sm...
Windows 11. Microsoft ascolta gli utenti...
SmartFTP
LibreOffice 7.2.3
7-Zip
Chromium
OCCT
K-Lite Codec Pack Update
K-Lite Mega Codec Pack
K-Lite Codec Pack Full
K-Lite Codec Pack Standard
K-Lite Codec Pack Basic
Opera Portable
Opera 81
Firefox Portable
NTLite
SiSoftware Sandra Lite
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:50.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Served by www1v