La memoria ad accesso uniforme, o uniform memory access (UMA), è un tipo di architettura a memoria condivisa usato nell'ambito del calcolo parallelo. Tutti i processori nel modello UMA condividono la memoria fisica uniformemente ed il tempo di accesso ad una zona di memoria è indipendente dal processore che effettua la richiesta e da quale chip di memoria contiene i dati trasferiti. Questo tipo di memoria è in contrasto con il modello ad accesso non uniforme (NUMA). Nell'architettura UMA ogni processore può usare una cache privata. Le periferiche sono inoltre condivise tramite vari meccanismi. Il modello UMA è utilizzabile per sistemi general purpose ed applicazioni time sharing multiutente. Può anche essere utilizzato per accelerare il tempo di esecuzione di un unico programma di grandi dimensioni nel caso di applicazioni time-critical.[1]
Esistono tre tipi di implementazione di questa architettura:
Nell'aprile 2013, il termine hUMA (heterogeneous uniform memory access) appare in materiali promozionali di AMD in riferimento a CPU e GPU che condividono la stessa memoria di sistema tramite viste cache coherent. I vantaggi includono un modello di programmazione più semplice e minori operazioni di copia dei dati tra pool di memoria separati.[2]