text:
# Heterogeneous System Architecture
Heterogeneous System Architecture (HSA) é um conjunto de especificações de vários fornecedores que permite a integração de unidades centrais de processamento e processadores gráficos no mesmo barramento, com memória e tarefas compartilhadas. O HSA está sendo desenvolvido pela HSA Foundation, que inclui (entre muitos outros) AMD e ARM. O objetivo declarado da plataforma é reduzir a latência de comunicação entre CPUs, GPUs e outros dispositivos de computação e tornar esses vários dispositivos mais compatíveis da perspectiva do programador,:3 aliviando o programador da tarefa de planejar a movimentação de dados entre memórias disjuntas de dispositivos (como deve ser feito atualmente com OpenCL ou CUDA).
CUDA e OpenCL, bem como a maioria das outras linguagens de programação bastante avançadas, podem usar HSA para aumentar seu desempenho de execução. A computação heterogênea é amplamente utilizada em dispositivos de sistema em chip, como tablets, smartphones, outros dispositivos móveis e consoles de videogame. O HSA permite que os programas usem o processador gráfico para cálculos de ponto flutuante sem memória ou agendamento separado.

## Justificativa
A lógica por trás do HSA é aliviar a carga dos programadores ao transferir cálculos para a GPU. Originalmente impulsionada exclusivamente pela AMD e chamada de FSA, a ideia foi estendida para abranger unidades de processamento além de GPUs, como DSPs de outros fabricantes.
- Etapas executadas ao descarregar cálculos para a GPU em um sistema não HSA
- Etapas executadas ao descarregar cálculos para a GPU em um sistema HSA, usando a funcionalidade HSA

As GPUs modernas são muito adequadas para executar instruções únicas, vários dados (SIMD) e instruções únicas, vários threads (SIMT), enquanto as CPUs modernas ainda estão sendo otimizadas para ramificação. etc.

## Visão geral
Originalmente introduzido por sistemas embarcados como o Cell Broadband Engine, o compartilhamento de memória do sistema diretamente entre vários participantes do sistema torna a computação heterogênea mais comum. A computação heterogênea em si se refere a sistemas que contêm múltiplas unidades de processamento – unidades centrais de processamento (CPUs), unidades de processamento gráfico (GPUs), processadores de sinais digitais (DSPs) ou qualquer tipo de circuito integrado específico para aplicações (ASICs). A arquitetura do sistema permite que qualquer acelerador, por exemplo, um processador gráfico, opere no mesmo nível de processamento que a CPU do sistema.
Entre seus principais recursos, o HSA define um espaço de endereço virtual unificado para dispositivos de computação: enquanto as GPUs tradicionalmente têm sua própria memória, separada da memória principal (CPU), o HSA exige que esses dispositivos compartilhem tabelas de páginas para que os dispositivos possam trocar dados compartilhando ponteiros. Isso deve ser suportado por unidades de gerenciamento de memória personalizadas.:6–7 Para tornar a interoperabilidade possível e também facilitar vários aspectos da programação, o HSA foi criado para ser independente de ISA tanto para CPUs quanto para aceleradores, e para oferecer suporte a linguagens de programação de alto nível.
Até agora, as especificações do HSA abrangem:

### Camada intermediária HSA
HSAIL (Heterogeneous System Architecture Intermediate Language), um conjunto de instruções virtuais para programas paralelos
- semelhante à LLVM Intermediate Representation e SPIR (usado por OpenCL e Vulkan)
- finalizado para um conjunto de instruções específico por um compilador JIT
- tomar decisões tardias sobre quais núcleos devem executar uma tarefa
- explicitamente paralelo
- suporta exceções, funções virtuais e outros recursos de alto nível
- suporte para depuração

### Modelo de memória HSA
- compatível com modelos de memória C++11, OpenCL, Java e .NET
- consistência relaxada
- projetado para oferecer suporte a linguagens gerenciadas (por exemplo, Java) e não gerenciadas (por exemplo, C)
- tornará muito mais fácil desenvolver compiladores de terceiros para uma ampla gama de produtos heterogêneos programados em Fortran, C++, C++ AMP, Java, et al.

### Despachante HSA e tempo de execução
- projetado para permitir enfileiramento de tarefas heterogêneo: uma fila de trabalho por núcleo, distribuição de trabalho em filas, balanceamento de carga por roubo de trabalho
- qualquer núcleo pode agendar trabalho para qualquer outro, incluindo ele mesmo
- redução significativa da sobrecarga de trabalho de agendamento para um núcleo

Os dispositivos móveis são uma das áreas de aplicação do HSA, na qual ele produz maior eficiência energética.

### Diagramas de blocos
As ilustrações abaixo comparam a coordenação CPU-GPU sob HSA em comparação com arquiteturas tradicionais.
- Arquitetura padrão com uma GPU discreta conectada ao barramento PCI Express. A cópia zero entre a GPU e a CPU não é possível devido às memórias físicas distintas.
- O HSA traz memória virtual unificada e facilita a passagem de ponteiros pelo PCI Express em vez de copiar todos os dados.
- Na memória principal particionada, uma parte da memória do sistema é alocada exclusivamente para a GPU. Como resultado, a operação de cópia zero não é possível.
- Memória principal unificada, onde GPU e CPU são habilitados para HSA. Isso torna possível a operação de cópia zero.[7]
- A MMU da CPU e a IOMMU da GPU devem estar em conformidade com as especificações de hardware HSA.

## Suporte de software
Alguns dos recursos específicos do HSA implementados no hardware precisam ser suportados pelo kernel do sistema operacional e por drivers de dispositivo específicos. Por exemplo, o suporte para placas de vídeo AMD Radeon e AMD FirePro, e APUs baseadas no Graphics Core Next (GCN), foi incorporado à versão 3.19 do kernel principal do Linux, lançada em 8 de fevereiro de 2015. Os programas não interagem diretamente com amdkfd, mas enfileiram seus trabalhos utilizando o tempo de execução do HSA. Esta primeira implementação, conhecida como amdkfd, foca em APUs "Kaveri" ou "Berlin" e funciona junto com o driver gráfico do kernel Radeon existente.
Adicionalmente, amdkfd oferece suporte ao heterogeneous queuing (HQ), que visa simplificar a distribuição de trabalhos computacionais entre várias CPUs e GPUs da perspectiva do programador. O suporte para gerenciamento de memória heterogênea (HMM), adequado apenas para hardware gráfico com a versão 2 do IOMMU da AMD, foi aceito na versão principal do kernel Linux 4.14.
O suporte integrado para plataformas HSA foi anunciado para o lançamento "Sumatra" do OpenJDK, previsto para 2015.
O AMD APP SDK é um kit de desenvolvimento de software proprietário da AMD voltado para computação paralela, disponível para Microsoft Windows e Linux. Bolt é uma biblioteca de modelos C++ otimizada para computação heterogênea.
O GPUOpen abrange algumas outras ferramentas de software relacionadas ao HSA. A versão 2.0 do CodeXL inclui um profiler HSA.

## Suporte de hardware

### AMD
Em fevereiro de 2015, apenas as APUs da série A "Kaveri" da AMD (cf. processadores para desktop "Kaveri" e processadores dispositivos móveis "Kaveri") e o PlayStation 4 da Sony permitiam que a GPU integrada acessasse a memória por meio da versão 2 do IOMMU da AMD. APUs anteriores (Trinity e Richland) incluíam a funcionalidade do IOMMU da versão 2, mas apenas para uso por uma GPU externa conectada via PCI Express.[carece de fontes?]
As APUs Carrizo e Bristol Ridge posteriores a 2015 também incluem a funcionalidade IOMMU versão 2 para a GPU integrada.[carece de fontes?]
A tabela a seguir mostra recursos das APUs da AMD
| Plataforma                                                                                | Plataforma                                                                                | Plataforma                                                                                | Alta, padrão e baixa potência    | Alta, padrão e baixa potência    | Alta, padrão e baixa potência    | Alta, padrão e baixa potência | Alta, padrão e baixa potência | Alta, padrão e baixa potência | Alta, padrão e baixa potência | Alta, padrão e baixa potência     | Alta, padrão e baixa potência     | Alta, padrão e baixa potência | Alta, padrão e baixa potência | Alta, padrão e baixa potência | Baixa e ultra baixa potência     | Baixa e ultra baixa potência | Baixa e ultra baixa potência           | Baixa e ultra baixa potência | Baixa e ultra baixa potência | Baixa e ultra baixa potência |
| Nome de código                                                                                | Servidor                                                                                | Basic                                                                                |                                  |                                  |                                  |                               |                               | Toronto                       |                               |                                   |                                   |                               |                               |                               |                                  |                              |                                        |                              |                              |                              |
| Nome de código                                                                                | Servidor                                                                                | Micro                                                                                |                                  |                                  |                                  |                               |                               |                               |                               |                                   |                                   |                               |                               |                               |                                  | Kyoto                        |                                        |                              |                              |                              |
| Nome de código                                                                                | Desktop                                                                                | Performance                                                                                |                                  |                                  |                                  |                               |                               |                               |                               |                                   |                                   | Renoir                        | Cezanne                       |                               |                                  |                              |                                        |                              |                              |                              |
| Nome de código                                                                                | Desktop                                                                                | Mainstream                                                                                | Llano                            | Trinity                          | Richland                         | Kaveri                        | Kaveri Refresh (Godavari)     | Carrizo                       | Bristol Ridge                 | Raven Ridge                       | Picasso                           | Renoir                        | Cezanne                       |                               |                                  |                              |                                        |                              |                              |                              |
| Nome de código                                                                                | Desktop                                                                                | Entrada                                                                                | Llano                            | Trinity                          | Richland                         | Kaveri                        | Kaveri Refresh (Godavari)     | Carrizo                       | Bristol Ridge                 | Raven Ridge                       | Picasso                           |                               |                               |                               |                                  |                              |                                        |                              |                              |                              |
| Nome de código                                                                                | Desktop                                                                                | Basic                                                                                |                                  |                                  |                                  |                               |                               |                               |                               |                                   |                                   |                               |                               |                               |                                  | Kabini                       |                                        |                              |                              |                              |
| Nome de código                                                                                | Mobile                                                                                | Performance                                                                                |                                  |                                  |                                  |                               |                               |                               |                               |                                   |                                   | Renoir                        | Cezanne                       | Rembrandt                     |                                  |                              |                                        |                              |                              |                              |
| Nome de código                                                                                | Mobile                                                                                | Mainstream                                                                                | Llano                            | Trinity                          | Richland                         | Kaveri                        |                               | Carrizo                       | Bristol Ridge                 | Raven Ridge                       | Picasso                           | Renoir                        | Cezanne                       | Rembrandt                     |                                  |                              |                                        |                              |                              |                              |
| Nome de código                                                                                | Mobile                                                                                | Entrada                                                                                | Llano                            | Trinity                          | Richland                         | Kaveri                        |                               |                               |                               |                                   |                                   |                               |                               |                               |                                  | Dalí                         |                                        |                              |                              |                              |
| Nome de código                                                                                | Mobile                                                                                | Basic                                                                                |                                  |                                  |                                  |                               |                               |                               |                               |                                   |                                   |                               |                               |                               | Desna, Ontario, Zacate           | Dalí                         | Kabini, Temash                         | Beema, Mullins               | Carrizo-L                    | Stoney Ridge                 |
| Nome de código                                                                                | Integrado                                                                                | Integrado                                                                                |                                  | Trinity                          |                                  | Bald Eagle                    |                               | Merlin Falcon, Brown Falcon   |                               | Great Horned Owl                  |                                   | Grey Hawk                     |                               |                               | Ontario, Zacate                  | Kabini                       | Steppe Eagle, Crowned Eagle, LX-Family |                              | Prairie Falcon               | Banded Kestrel               |
| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | --------------------------------- | --------------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | -------------------------------- | ---------------------------- | -------------------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
| Lançado                                                                                | Lançado                                                                                | Lançado                                                                                | Agosto de 2011                   | Outubro de 2012                  | Junho de 2013                    | Janeiro de 2014               | 2015                          | Junho de 2015                 | Junho de 2016                 | Outubro de 2017                   | Janeiro de 2019                   | Março de 2020                 | Janeiro de 2021               | Janeiro de 2022               | Janeiro de 2011                  | Maio 2013                    | Apr 2014                               | Maio de 2015                 | Fevereiro de 2016            | Abril de 2019                |
| Microarquitetura de CPU                                                                             | Microarquitetura de CPU                                                                             | Microarquitetura de CPU                                                                             | K10                              | Piledriver                       | Piledriver                       | Steamroller                   | Steamroller                   | Excavator                     | "Excavator+"                  | Zen                               | Zen+                              | Zen 2                         | Zen 3                         | Zen 3+                        | Bobcat                           | Jaguar                       | Puma                                   | Puma+                        | "Excavator+"                 | Zen                          |
| ISA                                                                                | ISA                                                                                | ISA                                                                                | x86-64                           | x86-64                           | x86-64                           | x86-64                        | x86-64                        | x86-64                        | x86-64                        | x86-64                            | x86-64                            | x86-64                        | x86-64                        | x86-64                        | x86-64                           | x86-64                       | x86-64                                 | x86-64                       | x86-64                       | x86-64                       |
| Socket                                                                                | Desktop                                                                                | High-end                                                                                | —                                | —                                | —                                | —                             | —                             | —                             | —                             | —                                 | —                                 | —                             | —                             | —                             | —                                | —                            | —                                      | —                            | —                            | —                            |
| Socket                                                                                | Desktop                                                                                | Mainstream                                                                                | —                                | —                                | —                                | —                             | —                             | AM4                           | AM4                           | AM4                               | AM4                               | AM4                           | AM4                           | —                             | —                                | —                            | —                                      | —                            | —                            | —                            |
| Socket                                                                                | Desktop                                                                                | Entrada                                                                                | FM1                              | FM2                              | FM2                              | FM2+                          | FM2+                          | FM2+                          | —                             | —                                 | —                                 | —                             | —                             | —                             | —                                | —                            | —                                      | —                            | —                            | —                            |
| Socket                                                                                | Desktop                                                                                | Basic                                                                                | —                                | —                                | —                                | —                             | —                             | —                             | —                             | —                                 | —                                 | —                             | —                             | —                             | —                                | AM1                          | —                                      | —                            | —                            | —                            |
| Socket                                                                                | Outros                                                                                | Outros                                                                                | FS1                              | FS1+, FP2                        | FS1+, FP2                        | FP3                           | FP3                           | FP4                           | FP4                           | FP5                               | FP5                               | FP6                           | FP6                           | FP7                           | FT1                              | FT3                          | FT3b                                   | FT3b                         | FP4                          | FP5                          |
| Versão PCI Express                                                                                | Versão PCI Express                                                                                | Versão PCI Express                                                                                | 2.0                              | 2.0                              | 2.0                              | 3.0                           | 3.0                           | 3.0                           | 3.0                           | 3.0                               | 3.0                               | 3.0                           | 3.0                           | 4.0                           | 2.0                              | 2.0                          | 2.0                                    | 2.0                          | 3.0                          | 3.0                          |
| Fab. (nm)                                                                                | Fab. (nm)                                                                                | Fab. (nm)                                                                                | GF 32SHP (HKMG SOI)              | GF 32SHP (HKMG SOI)              | GF 32SHP (HKMG SOI)              | GF 28SHP (HKMG bulk)          | GF 28SHP (HKMG bulk)          | GF 28SHP (HKMG bulk)          | GF 28SHP (HKMG bulk)          | GF 14LPP (FinFET bulk)            | GF 12LP (FinFET bulk)             | TSMC N7 (FinFET bulk)         | TSMC N7 (FinFET bulk)         | TSMC N6 (FinFET bulk)         | TSMC N40 (bulk)                  | TSMC N28 (HKMG bulk)         | GF 28SHP (HKMG bulk)                   | GF 28SHP (HKMG bulk)         | GF 28SHP (HKMG bulk)         | GF 14LPP (FinFET bulk)       |
| Area do Die (mm2)                                                                                | Area do Die (mm2)                                                                                | Area do Die (mm2)                                                                                | 228                              | 246                              | 246                              | 245                           | 245                           | 245                           | 250                           | 210                               | 210                               | 156                           | 180                           | 210                           | 75 (+ 28 FCH)                    | 107                          | 107                                    | ?                            | 125                          | 149                          |
| TDP min. (W)                                                                                | TDP min. (W)                                                                                | TDP min. (W)                                                                                | 35                               | 17                               | 17                               | 17                            | 17                            | 12                            | 12                            | 12                                | 12                                | 10                            | 10                            | 15                            | 4.5                              | 4                            | 3.95                                   | 10                           | 6                            | 6                            |
| TDP max. de APU (W)                                                                                | TDP max. de APU (W)                                                                                | TDP max. de APU (W)                                                                                | 100                              | 100                              | 100                              | 95                            | 95                            | 65                            | 65                            | 65                                | 65                                | 65                            | 65                            | 45                            | 18                               | 25                           | 25                                     | 25                           | 25                           | 25                           |
| Clock base max. de stock de APU (GHz)                                                               | Clock base max. de stock de APU (GHz)                                                               | Clock base max. de stock de APU (GHz)                                                               | 3                                | 3.8                              | 4.1                              | 4.1                           | 4.1                           | 3.7                           | 3.8                           | 3.6                               | 3.7                               | 3.8                           | 4.0                           | 3.3                           | 1.75                             | 2.2                          | 2                                      | 2.2                          | 3.2                          | 2.6                          |
| Máximo de APUs por nó                                                                               | Máximo de APUs por nó                                                                               | Máximo de APUs por nó                                                                               | 1                                | 1                                | 1                                | 1                             | 1                             | 1                             | 1                             | 1                                 | 1                                 | 1                             | 1                             | 1                             | 1                                | 1                            | 1                                      | 1                            | 1                            | 1                            |
| Max CPU cores por APU                                                                               | Max CPU cores por APU                                                                               | Max CPU cores por APU                                                                               | 4                                | 4                                | 4                                | 4                             | 4                             | 4                             | 4                             | 4                                 | 4                                 | 8                             | 8                             | 8                             | 2                                | 4                            | 4                                      | 4                            | 2                            | 2                            |
| Max threads por core de CPU                                                                         | Max threads por core de CPU                                                                         | Max threads por core de CPU                                                                         | 1                                | 1                                | 1                                | 1                             | 1                             | 1                             | 1                             | 2                                 | 2                                 | 2                             | 2                             | 2                             | 1                                | 1                            | 1                                      | 1                            | 1                            | 2                            |
| i386, i486, i586, CMOV, NOPL, i686, PAE, NX bit, CMPXCHG16B, AMD-V, RVI, ABM, e LAHF/SAHF de 64-bit | i386, i486, i586, CMOV, NOPL, i686, PAE, NX bit, CMPXCHG16B, AMD-V, RVI, ABM, e LAHF/SAHF de 64-bit | i386, i486, i586, CMOV, NOPL, i686, PAE, NX bit, CMPXCHG16B, AMD-V, RVI, ABM, e LAHF/SAHF de 64-bit | Yes                              | Yes                              | Yes                              | Yes                           | Yes                           | Yes                           | Yes                           | Yes                               | Yes                               | Yes                           | Yes                           | Yes                           | Yes                              | Yes                          | Yes                                    | Yes                          | Yes                          | Yes                          |
| IOMMU                                                                                | IOMMU                                                                                | IOMMU                                                                                | —                                | Yes                              | Yes                              | Yes                           | Yes                           | Yes                           | Yes                           | Yes                               | Yes                               | Yes                           | Yes                           | Yes                           | Yes                              | Yes                          | Yes                                    | Yes                          | Yes                          | Yes                          |
| BMI1, AES-NI, CLMUL, e F16C                                                                         | BMI1, AES-NI, CLMUL, e F16C                                                                         | BMI1, AES-NI, CLMUL, e F16C                                                                         | —                                | Yes                              | Yes                              | Yes                           | Yes                           | Yes                           | Yes                           | Yes                               | Yes                               | Yes                           | Yes                           | Yes                           | —                                | Yes                          | Yes                                    | Yes                          | Yes                          | Yes                          |
| MOVBE                                                                                | MOVBE                                                                                | MOVBE                                                                                | —                                | —                                | —                                | —                             | —                             | Yes                           | Yes                           | Yes                               | Yes                               | Yes                           | Yes                           | Yes                           | —                                | Yes                          | Yes                                    | Yes                          | Yes                          | Yes                          |
| AVIC, BMI2 e RDRAND                                                                                | AVIC, BMI2 e RDRAND                                                                                | AVIC, BMI2 e RDRAND                                                                                | —                                | —                                | —                                | —                             | —                             | Yes                           | Yes                           | Yes                               | Yes                               | Yes                           | Yes                           | Yes                           | —                                | —                            | —                                      | —                            | Yes                          | Yes                          |
| ADX, SHA, RDSEED, SMAP, SMEP, XSAVEC, XSAVES, XRSTORS, CLFLUSHOPT, e CLZERO                         | ADX, SHA, RDSEED, SMAP, SMEP, XSAVEC, XSAVES, XRSTORS, CLFLUSHOPT, e CLZERO                         | ADX, SHA, RDSEED, SMAP, SMEP, XSAVEC, XSAVES, XRSTORS, CLFLUSHOPT, e CLZERO                         | —                                | —                                | —                                | —                             | —                             | —                             | —                             | Yes                               | Yes                               | Yes                           | Yes                           | Yes                           | —                                | —                            | —                                      | —                            | —                            | Yes                          |
| WBNOINVD, CLWB, RDPID, RDPRU, e MCOMMIT                                                             | WBNOINVD, CLWB, RDPID, RDPRU, e MCOMMIT                                                             | WBNOINVD, CLWB, RDPID, RDPRU, e MCOMMIT                                                             | —                                | —                                | —                                | —                             | —                             | —                             | —                             | —                                 | —                                 | Yes                           | Yes                           | Yes                           | —                                | —                            | —                                      | —                            | —                            | —                            |
| FPUs por core                                                                                | FPUs por core                                                                                | FPUs por core                                                                                | 1                                | 0.5                              | 0.5                              | 0.5                           | 0.5                           | 0.5                           | 0.5                           | 1                                 | 1                                 | 1                             | 1                             | 1                             | 1                                | 1                            | 1                                      | 1                            | 0.5                          | 1                            |
| Tubos por FPU                                                                                | Tubos por FPU                                                                                | Tubos por FPU                                                                                | 2                                | 2                                | 2                                | 2                             | 2                             | 2                             | 2                             | 2                                 | 2                                 | 2                             | 2                             | 2                             | 2                                | 2                            | 2                                      | 2                            | 2                            | 2                            |
| Largura do tubo FPU                                                                                | Largura do tubo FPU                                                                                | Largura do tubo FPU                                                                                | 128-bit                          | 128-bit                          | 128-bit                          | 128-bit                       | 128-bit                       | 128-bit                       | 128-bit                       | 128-bit                           | 128-bit                           | 256-bit                       | 256-bit                       | 256-bit                       | 80-bit                           | 128-bit                      | 128-bit                                | 128-bit                      | 128-bit                      | 128-bit                      |
| Nível SIMD do conjunto de instruções da CPU                                                         | Nível SIMD do conjunto de instruções da CPU                                                         | Nível SIMD do conjunto de instruções da CPU                                                         | SSE4a                            | AVX                              | AVX                              | AVX                           | AVX                           | AVX2                          | AVX2                          | AVX2                              | AVX2                              | AVX2                          | AVX2                          | AVX2                          | SSSE3                            | AVX                          | AVX                                    | AVX                          | AVX2                         | AVX2                         |
| 3DNow!                                                                                | 3DNow!                                                                                | 3DNow!                                                                                | Yes                              | —                                | —                                | —                             | —                             | —                             | —                             | —                                 | —                                 | —                             | —                             | —                             | —                                | —                            | —                                      | —                            | —                            | —                            |
| FMA4, LWP, TBM, e XOP                                                                               | FMA4, LWP, TBM, e XOP                                                                               | FMA4, LWP, TBM, e XOP                                                                               | —                                | Yes                              | Yes                              | Yes                           | Yes                           | Yes                           | Yes                           | —                                 | —                                 | —                             | —                             | —                             | —                                | —                            | —                                      | —                            | Yes                          | —                            |
| FMA3                                                                                | FMA3                                                                                | FMA3                                                                                | —                                | Yes                              | Yes                              | Yes                           | Yes                           | Yes                           | Yes                           | Yes                               | Yes                               | Yes                           | Yes                           | Yes                           | —                                | —                            | —                                      | —                            | Yes                          | Yes                          |
| Cache L1 de dados por núcleo (KiB)                                                                  | Cache L1 de dados por núcleo (KiB)                                                                  | Cache L1 de dados por núcleo (KiB)                                                                  | 64                               | 16                               | 16                               | 16                            | 16                            | 32                            | 32                            | 32                                | 32                                | 32                            | 32                            | 32                            | 32                               | 32                           | 32                                     | 32                           | 32                           | 32                           |
| Associatividade do cache de dados L1 (maneiras)                                                     | Associatividade do cache de dados L1 (maneiras)                                                     | Associatividade do cache de dados L1 (maneiras)                                                     | 2                                | 4                                | 4                                | 4                             | 4                             | 8                             | 8                             | 8                                 | 8                                 | 8                             | 8                             | 8                             | 8                                | 8                            | 8                                      | 8                            | 8                            | 8                            |
| Caches de instruções L1 por core                                                                    | Caches de instruções L1 por core                                                                    | Caches de instruções L1 por core                                                                    | 1                                | 0.5                              | 0.5                              | 0.5                           | 0.5                           | 0.5                           | 0.5                           | 1                                 | 1                                 | 1                             | 1                             | 1                             | 1                                | 1                            | 1                                      | 1                            | 0.5                          | 1                            |
| Cache máximo de instrução L1 total da APU (KiB)                                                     | Cache máximo de instrução L1 total da APU (KiB)                                                     | Cache máximo de instrução L1 total da APU (KiB)                                                     | 256                              | 128                              | 128                              | 192                           | 192                           | 192                           | 192                           | 256                               | 256                               | 256                           | 256                           | 256                           | 64                               | 64                           | 128                                    | 128                          | 96                           | 128                          |
| Associatividade de cache de instrução L1 (maneiras)                                                 | Associatividade de cache de instrução L1 (maneiras)                                                 | Associatividade de cache de instrução L1 (maneiras)                                                 | 2                                | 2                                | 2                                | 3                             | 3                             | 3                             | 3                             | 4                                 | 4                                 | 8                             | 8                             | 8                             | 2                                | 2                            | 2                                      | 2                            | 3                            | 4                            |
| Caches L2 por core                                                                                | Caches L2 por core                                                                                | Caches L2 por core                                                                                | 1                                | 0.5                              | 0.5                              | 0.5                           | 0.5                           | 0.5                           | 0.5                           | 1                                 | 1                                 | 1                             | 1                             | 1                             | 1                                | 1                            | 1                                      | 1                            | 0.5                          | 1                            |
| Cache L2 total de APU máximo (MiB)                                                                  | Cache L2 total de APU máximo (MiB)                                                                  | Cache L2 total de APU máximo (MiB)                                                                  | 4                                | 4                                | 4                                | 4                             | 4                             | 2                             | 2                             | 2                                 | 2                                 | 4                             | 4                             | 4                             | 1                                | 2                            | 2                                      | 2                            | 1                            | 1                            |
| Associatividade de cache L2 (maneiras)                                                              | Associatividade de cache L2 (maneiras)                                                              | Associatividade de cache L2 (maneiras)                                                              | 16                               | 16                               | 16                               | 16                            | 16                            | 16                            | 16                            | 8                                 | 8                                 | 8                             | 8                             | 8                             | 16                               | 16                           | 16                                     | 16                           | 16                           | 8                            |
| Cache L3 total da APU (MiB)                                                                         | Cache L3 total da APU (MiB)                                                                         | Cache L3 total da APU (MiB)                                                                         | —                                | —                                | —                                | —                             | —                             | —                             | —                             | 4                                 | 4                                 | 8                             | 16                            | 16                            | —                                | —                            | —                                      | —                            | —                            | 4                            |
| Associatividade de cache APU L3 (maneiras)                                                          | Associatividade de cache APU L3 (maneiras)                                                          | Associatividade de cache APU L3 (maneiras)                                                          | —                                | —                                | —                                | —                             | —                             | —                             | —                             | 16                                | 16                                | 16                            | 16                            | 16                            | —                                | —                            | —                                      | —                            | —                            | 16                           |
| Esquema de cache L3                                                                                | Esquema de cache L3                                                                                | Esquema de cache L3                                                                                | —                                | —                                | —                                | —                             | —                             | —                             | —                             | Victim                            | Victim                            | Victim                        | Victim                        | Victim                        | —                                | —                            | —                                      | —                            | —                            | Victim                       |
| Suporte max. de DRAM stock                                                                          | Suporte max. de DRAM stock                                                                          | Suporte max. de DRAM stock                                                                          | DDR3-1866                        | DDR3-1866                        | DDR3-2133                        | DDR3-2133                     | DDR3-2133                     | DDR3-2133, DDR4-2400          | DDR4-2400                     | DDR4-2933                         | DDR4-2933                         | DDR4-3200, LPDDR4-4266        | DDR4-3200, LPDDR4-4266        | DDR5-4800, LPDDR5-6400        | DDR3L-1333                       | DDR3L-1600                   | DDR3L-1866                             | DDR3L-1866                   | DDR3-1866, DDR4-2400         | DDR4-2400                    |
| Max. de canais DRAM por APU                                                                         | Max. de canais DRAM por APU                                                                         | Max. de canais DRAM por APU                                                                         | 2                                | 2                                | 2                                | 2                             | 2                             | 2                             | 2                             | 2                                 | 2                                 | 2                             | 2                             | 2                             | 1                                | 1                            | 1                                      | 1                            | 1                            | 2                            |
| Max. largura de banda DRAM de stock por APU (GB/s)                                                  | Max. largura de banda DRAM de stock por APU (GB/s)                                                  | Max. largura de banda DRAM de stock por APU (GB/s)                                                  | 29.866                           | 29.866                           | 34.132                           | 34.132                        | 34.132                        | 38.400                        | 38.400                        | 46.932                            | 46.932                            | 68.256                        | 68.256                        | 102.400                       | 10.666                           | 12.800                       | 14.933                                 | 14.933                       | 19.200                       | 38.400                       |
| Microarquitetura GPU                                                                                | Microarquitetura GPU                                                                                | Microarquitetura GPU                                                                                | TeraScale 2 (VLIW5)              | TeraScale 3 (VLIW4)              | TeraScale 3 (VLIW4)              | GCN 2nd gen                   | GCN 2nd gen                   | GCN 3rd gen                   | GCN 3rd gen                   | GCN 5th gen                       | GCN 5th gen                       | GCN 5th gen                   | GCN 5th gen                   | RDNA 2nd gen                  | TeraScale 2 (VLIW5)              | GCN 2nd gen                  | GCN 2nd gen                            | GCN 2nd gen                  | GCN 3rd gen                  | GCN 5th gen                  |
| Conjunto de instruções da GPU                                                                       | Conjunto de instruções da GPU                                                                       | Conjunto de instruções da GPU                                                                       | Conjunto de instruções TeraScale | Conjunto de instruções TeraScale | Conjunto de instruções TeraScale | Conjunto de instruções GCN    | Conjunto de instruções GCN    | Conjunto de instruções GCN    | Conjunto de instruções GCN    | Conjunto de instruções GCN        | Conjunto de instruções GCN        | Conjunto de instruções GCN    | Conjunto de instruções GCN    | Conjunto de instruções RDNA   | Conjunto de instruções TeraScale | Conjunto de instruções GCN   | Conjunto de instruções GCN             | Conjunto de instruções GCN   | Conjunto de instruções GCN   | Conjunto de instruções GCN   |
| Clock base da GPU de stock máximo (MHz)                                                             | Clock base da GPU de stock máximo (MHz)                                                             | Clock base da GPU de stock máximo (MHz)                                                             | 600                              | 800                              | 844                              | 866                           | 866                           | 1108                          | 1108                          | 1250                              | 1400                              | 2100                          | 2100                          | 2400                          | 538                              | 600                          | ?                                      | 847                          | 900                          | 1200                         |
| Max stock GPU base GFLOPS                                                                           | Max stock GPU base GFLOPS                                                                           | Max stock GPU base GFLOPS                                                                           | 480                              | 614.4                            | 648.1                            | 886.7                         | 886.7                         | 1134.5                        | 1134.5                        | 1760                              | 1971.2                            | 2150.4                        | 2150.4                        | 3686.4                        | 86                               | ?                            | ?                                      | ?                            | 345.6                        | 460.8                        |
| Motor 3D                                                                                | Motor 3D                                                                                | Motor 3D                                                                                | Até 400:20:8                     | Até 384:24:6                     | Até 384:24:6                     | Até 512:32:8                  | Até 512:32:8                  | Até 512:32:8                  | Até 512:32:8                  | Até 704:44:16                     | Até 704:44:16                     | Até 512:32:8                  | Até 512:32:8                  | 768:48:8                      | 80:8:4                           | 128:8:4                      | 128:8:4                                | 128:8:4                      | Até 192:?:?                  | Até 192:?:?                  |
| Motor 3D                                                                                | Motor 3D                                                                                | Motor 3D                                                                                | IOMMUv1                          | IOMMUv1                          | IOMMUv1                          | IOMMUv2                       | IOMMUv2                       | IOMMUv2                       | IOMMUv2                       | IOMMUv2                           | IOMMUv2                           | IOMMUv2                       | IOMMUv2                       | IOMMUv1                       | IOMMUv1                          | IOMMUv1                      | ?                                      | ?                            | IOMMUv2                      |                              |
| Decodificador de vídeo                                                                              | Decodificador de vídeo                                                                              | Decodificador de vídeo                                                                              | UVD 3.0                          | UVD 3.0                          | UVD 3.0                          | UVD 4.2                       | UVD 4.2                       | UVD 6.0                       | UVD 6.0                       | VCN 1.0                           | VCN 1.0                           | VCN 2.1                       | VCN 2.2                       | VCN 3.1                       | UVD 3.0                          | UVD 4.0                      | UVD 4.2                                | UVD 6.0                      | UVD 6.3]]                    | VCN 1.0                      |
| Codificador de vídeo                                                                                | Codificador de vídeo                                                                                | Codificador de vídeo                                                                                | —                                | VCE 1.0                          | VCE 1.0                          | VCE 2.0                       | VCE 2.0                       | VCE 3.1                       | VCE 3.1                       | VCN 1.0                           | VCN 1.0                           | VCN 2.1                       | VCN 2.2                       | VCN 3.1                       | —                                | VCE 2.0                      | VCE 2.0                                | VCE 3.1                      | VCE 3.1                      | VCN 1.0                      |
| Movimento Fluido AMD                                                                                | Movimento Fluido AMD                                                                                | Movimento Fluido AMD                                                                                | Não                              | Não                              | Não                              | Yes                           | Yes                           | Yes                           | Yes                           | Não                               | Não                               | Não                           | Não                           | Não                           | Não                              | Não                          | Yes                                    | Yes                          | Yes                          | Não                          |
| Economia de energia da GPU                                                                          | Economia de energia da GPU                                                                          | Economia de energia da GPU                                                                          | PowerPlay                        | PowerTune                        | PowerTune                        | PowerTune                     | PowerTune                     | PowerTune                     | PowerTune                     | PowerTune                         | PowerTune                         | PowerTune                     | PowerTune                     | PowerTune                     | PowerPlay                        | PowerTune                    | PowerTune                              | PowerTune                    | PowerTune                    | PowerTune                    |
| TrueAudio                                                                                | TrueAudio                                                                                | TrueAudio                                                                                | —                                | —                                | —                                | [ 23 ]                        | [ 23 ]                        | [ 23 ]                        | [ 23 ]                        | [ 23 ]                            | [ 23 ]                            | [ 23 ]                        | ?                             | ?                             | —                                | Yes                          | Yes                                    | Yes                          | Yes                          | Yes                          |
| FreeSync                                                                                | FreeSync                                                                                | FreeSync                                                                                | —                                | —                                | —                                | 1 2                           | 1 2                           | 1 2                           | 1 2                           | 1 2                               | 1 2                               | 1 2                           | 1 2                           | 1 2                           | —                                | 1 2                          | 1 2                                    | 1 2                          | 1 2                          | 1 2                          |
| HDCP                                                                                | HDCP                                                                                | HDCP                                                                                | ?                                | ?                                | ?                                | 1.4                           | 1.4                           | 1.4                           | 1.4                           | 1.4 2.2                           | 1.4 2.2                           | 1.4 2.2                       | 1.4 2.2                       | 1.4 2.2                       | ?                                | 1.4                          | 1.4                                    | 1.4                          | 1.4                          | 1.4 2.2                      |
| PlayReady                                                                                | PlayReady                                                                                | PlayReady                                                                                | —                                | —                                | —                                | —                             | —                             | —                             | —                             | 3.0 not yet                       | 3.0 not yet                       | 3.0 not yet                   | 3.0 not yet                   | 3.0 not yet                   | —                                | —                            | —                                      | —                            | —                            | 3.0 ainda não                |
| Telas compatíveis                                                                                | Telas compatíveis                                                                                | Telas compatíveis                                                                                | 2–3                              | 2–4                              | 2–4                              | 2–4                           | 2–4                           | 3                             | 3                             | 3 (desktop) 4 (mobile, integrado) | 3 (desktop) 4 (mobile, integrado) | 4                             | 4                             | 4                             | 2                                | 2                            | 2                                      | 2                            | 3                            | 4                            |
| /drm/radeon                                                                                | /drm/radeon                                                                                | /drm/radeon                                                                                | Yes                              | Yes                              | Yes                              | Yes                           | Yes                           | Yes                           | —                             | —                                 | —                                 | —                             | —                             | —                             | Yes                              | Yes                          | Yes                                    | Yes                          | —                            | —                            |
| /drm/amdgpu                                                                                | /drm/amdgpu                                                                                | /drm/amdgpu                                                                                | —                                | —                                | —                                | [ 28 ]                        | [ 28 ]                        | [ 28 ]                        | [ 28 ]                        | [ 28 ]                            | [ 28 ]                            | [ 28 ]                        | [ 28 ]                        | [ 28 ]                        | —                                | [ 28 ]                       | [ 28 ]                                 | [ 28 ]                       | [ 28 ]                       | [ 28 ]                       |

1. ↑  Para modelos Excavator FM2+: A8-7680, A6-7480 e Athlon X4 845.
2. ↑  Um PC seria um nó.
3. ↑  Uma APU combina uma CPU e uma GPU. Ambos têm núcleos.
4. ↑  Requer suporte de firmware
5. ↑  No SSE4. No SSSE3.
6. ↑  O desempenho de precisão simples é calculado a partir da velocidade de clock do núcleo base (ou boost) com base em uma operação FMA.
7. ↑  Shaders unificados : unidades de mapeamento de textura : unidades de saída de renderização
8. ↑  Para reproduzir conteúdo de vídeo protegido, também é necessário suporte a placa, sistema operacional, driver e aplicativo. Um monitor HDCP compatível também é necessário para isso. O HDCP é obrigatório para a saída de certos formatos de áudio, colocando restrições adicionais na configuração multimídia.
9. ↑  Para reproduzir conteúdo de vídeo protegido, também é necessário suporte a placa, sistema operacional, driver e aplicativo. Um monitor HDCP compatível também é necessário para isso. O HDCP é obrigatório para a saída de certos formatos de áudio, colocando restrições adicionais na configuração multimídia.
10. ↑  Para alimentar mais de dois monitores, os painéis adicionais devem ter suporte nativo para DisplayPort.[24] Alternativamente, adaptadores DisplayPort-to-DVI/HDMI/VGA ativos podem ser empregados.
11. ↑  DRM (Direct Rendering Manager) é um componente do kernel Linux. O suporte nesta tabela refere-se à versão mais atual.
12. ↑  DRM (Direct Rendering Manager) é um componente do kernel Linux. O suporte nesta tabela refere-se à versão mais atual.

### ARM
A microarquitetura Bifrost da ARM, conforme implementada no Mali-G71, é totalmente compatível com as especificações de hardware HSA 1.1. Em junho de 2016, a ARM não anunciou suporte de software que usaria esse recurso de hardware.

wikiname: ptwiki

title: Heterogeneous System Architecture

in_language: pt

wikitext:
'''Heterogeneous System Architecture''' ('''HSA''') é um conjunto de especificações de vários fornecedores que permite a integração de [[Unidade central de processamento|unidades centrais de processamento]] e [[Unidade de processamento gráfico|processadores gráficos]] no mesmo barramento, com [[Armazenamento de dados de computador|memória]] e tarefas compartilhadas.<ref>{{Citar web|ultimo=Tarun Iyer|url=http://www.tomshardware.com/news/AMD-HSA-hUMA-APU,22324.html|titulo=AMD Unveils its Heterogeneous Uniform Memory Access (hUMA) Technology|data=30 de abril de 2013|acessodata=2025-04-30|website=Tom's Hardware}}</ref> O HSA está sendo desenvolvido pela HSA Foundation, que inclui (entre muitos outros) [[Advanced Micro Devices|AMD]] e [[Arm Holdings|ARM]]. O objetivo declarado da plataforma é reduzir a latência de comunicação entre CPUs, GPUs e outros [[OpenCL|dispositivos de computação]] e tornar esses vários dispositivos mais compatíveis da perspectiva do programador,<ref name="whitepaper">{{Citar relatório|ultimo=George Kyriazis|data=2025-04-30|titulo=Heterogeneous System Architecture: A Technical Review|url=http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/hsa10.pdf|publicado=AMD|arquivourl=https://web.archive.org/web/20140328140823/http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/hsa10.pdf|arquivodata=28 de março de 2014|urlmorta=dead}}</ref>{{Rp|3}}<ref name="whatis">{{Citar web|url=http://developer.amd.com/resources/heterogeneous-computing/what-is-heterogeneous-system-architecture-hsa/|titulo=What is Heterogeneous System Architecture (HSA)?|acessodata=2025-04-30|publicado=AMD|arquivourl=https://web.archive.org/web/20140621213832/http://developer.amd.com/resources/heterogeneous-computing/what-is-heterogeneous-system-architecture-hsa/|arquivodata=21 de junho de 2014|urlmorta=dead}}</ref> aliviando o programador da tarefa de planejar a movimentação de dados entre memórias disjuntas de dispositivos (como deve ser feito atualmente com [[OpenCL]] ou [[CUDA]]).<ref>{{Citar web|ultimo=Joel Hruska|url=http://www.extremetech.com/gaming/164817-setting-hsail-amd-cpu-gpu-cooperation|titulo=Setting HSAIL: AMD explains the future of CPU/GPU cooperation|data=2013-08-26|acessodata=2025-04-30|website=[[ExtremeTech]]|publicado=[[Ziff Davis]]}}</ref>

CUDA e OpenCL, bem como a maioria das outras linguagens de programação bastante avançadas, podem usar HSA para aumentar seu desempenho de execução. A computação heterogênea é amplamente utilizada em dispositivos de [[Sistema em um chip|sistema em chip]], como [[tablet]]s, [[smartphone]]s, outros dispositivos móveis e [[Console de jogos eletrônicos|consoles de videogame]].<ref name="gpuscience">{{Citar web|url=http://gpuscience.com/cs/heterogeneous-system-architecture-purpose-and-outlook/|titulo=Heterogeneous System Architecture: Purpose and Outlook|data=2012-11-09|acessodata=2025-04-30|website=gpuscience.com|arquivourl=https://web.archive.org/web/20140201183411/http://gpuscience.com/cs/heterogeneous-system-architecture-purpose-and-outlook/|arquivodata=2014-02-01}}</ref> O HSA permite que os programas usem o processador gráfico para cálculos de [[Vírgula flutuante|ponto flutuante]] sem memória ou agendamento separado.<ref>{{Citar web|url=http://embedded-computing.com/articles/heterogeneous-processing-using-mix-cpu-gpu-elements/|titulo=Heterogeneous system architecture: Multicore image processing using a mix of CPU and GPU elements|acessodata=2025-04-30|website=Embedded Computing Design|arquivourl=https://web.archive.org/web/20130326174424/http://embedded-computing.com/articles/heterogeneous-processing-using-mix-cpu-gpu-elements/|arquivodata=26 de março de 2013}}</ref>

== Justificativa ==
A lógica por trás do HSA é aliviar a carga dos programadores ao transferir cálculos para a GPU. Originalmente impulsionada exclusivamente pela AMD e chamada de FSA, a ideia foi estendida para abranger unidades de processamento além de GPUs, como [[DSP]]s de outros fabricantes.

{{Galeria|File:HSA – using the GPU without HSA.svg|Etapas executadas ao descarregar cálculos para a [[Unidade de processamento gráfico|GPU]] em um sistema não HSA|File:HSA – using the GPU with HSA.svg|Etapas executadas ao descarregar cálculos para a GPU em um sistema HSA, usando a funcionalidade HSA|align=center}}

As GPUs modernas são muito adequadas para executar [[SIMD|instruções únicas, vários dados]] (SIMD) e instruções únicas, vários threads (SIMT), enquanto as CPUs modernas ainda estão sendo otimizadas para ramificação. etc.

== Visão geral ==
Originalmente introduzido por [[Sistema embarcado|sistemas embarcados]] como o [[Cell (microprocessador)|Cell Broadband Engine]], o compartilhamento de memória do sistema diretamente entre vários participantes do sistema torna a computação heterogênea mais comum. A computação heterogênea em si se refere a sistemas que contêm múltiplas unidades de processamento{{Spaced ndash}}[[Unidade central de processamento|unidades centrais de processamento]] (CPUs), [[Unidade de processamento gráfico|unidades de processamento gráfico]] (GPUs), [[DSP|processadores de sinais digitais]] (DSPs) ou qualquer tipo de [[Circuito integrado de aplicação especifica|circuito integrado específico para aplicações]] (ASICs). A arquitetura do sistema permite que qualquer acelerador, por exemplo, um [[Unidade de processamento gráfico|processador gráfico]], opere no mesmo nível de processamento que a CPU do sistema.

Entre seus principais recursos, o HSA define um espaço de endereço virtual unificado para dispositivos de computação: enquanto as GPUs tradicionalmente têm sua própria memória, separada da memória principal (CPU), o HSA exige que esses dispositivos compartilhem [[Página (memória de computador)|tabelas de páginas]] para que os dispositivos possam trocar dados compartilhando [[Ponteiro (programação)|ponteiros]]. Isso deve ser suportado por [[Unidade de gerenciamento de memória|unidades de gerenciamento de memória]] personalizadas.<ref name="whitepaper">{{Citar relatório|ultimo=George Kyriazis|data=2025-04-30|titulo=Heterogeneous System Architecture: A Technical Review|url=http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/hsa10.pdf|publicado=AMD|arquivourl=https://web.archive.org/web/20140328140823/http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/hsa10.pdf|arquivodata=28 de março de 2014|urlmorta=dead}}</ref>{{Rp|6–7}} Para tornar a interoperabilidade possível e também facilitar vários aspectos da programação, o HSA foi criado para ser independente de ISA tanto para CPUs quanto para aceleradores, e para oferecer suporte a linguagens de programação de alto nível.

Até agora, as especificações do HSA abrangem:

=== Camada intermediária HSA ===
HSAIL (Heterogeneous System Architecture Intermediate Language), um [[UCSD p-System|conjunto de instruções virtuais]] para programas paralelos

* semelhante à [[LLVM|LLVM Intermediate Representation]] e SPIR (usado por [[OpenCL]] e [[Vulkan]])
* finalizado para um conjunto de instruções específico por um [[JIT|compilador JIT]]
* tomar decisões tardias sobre quais núcleos devem executar uma tarefa
* explicitamente paralelo
* suporta exceções, funções virtuais e outros recursos de alto nível
* suporte para depuração

=== Modelo de memória HSA ===
* compatível com modelos de memória [[C++11]], OpenCL, [[Java (linguagem de programação)|Java]] e [[.NET Framework|.NET]]
* consistência relaxada
* projetado para oferecer suporte a linguagens gerenciadas (por exemplo, Java) e não gerenciadas (por exemplo, [[C (linguagem de programação)|C]])
* tornará muito mais fácil desenvolver compiladores de terceiros para uma ampla gama de produtos heterogêneos programados em [[Fortran]], C++, C++ AMP, Java, et al.

=== Despachante HSA e tempo de execução ===
* projetado para permitir enfileiramento de tarefas heterogêneo: uma fila de trabalho por núcleo, distribuição de trabalho em filas, balanceamento de carga por roubo de trabalho
* qualquer núcleo pode agendar trabalho para qualquer outro, incluindo ele mesmo
* redução significativa da sobrecarga de trabalho de agendamento para um núcleo

Os dispositivos móveis são uma das áreas de aplicação do HSA, na qual ele produz maior eficiência energética.<ref name="gpuscience">{{Citar web|url=http://gpuscience.com/cs/heterogeneous-system-architecture-purpose-and-outlook/|titulo=Heterogeneous System Architecture: Purpose and Outlook|data=2012-11-09|acessodata=2025-04-30|website=gpuscience.com|arquivourl=https://web.archive.org/web/20140201183411/http://gpuscience.com/cs/heterogeneous-system-architecture-purpose-and-outlook/|arquivodata=2014-02-01}}</ref>

=== Diagramas de blocos ===
As ilustrações abaixo comparam a coordenação CPU-GPU sob HSA em comparação com arquiteturas tradicionais.
{{Gallery
 | width  = 320
 | height = 190
 | align  = center
|File:Desktop computer bus bandwidths.svg
 |Arquitetura padrão com uma [[Unidade de processamento gráfico|GPU]] discreta conectada ao barramento [[PCI Express]]. A [[Zero-cópia|cópia zero]] entre a GPU e a CPU não é possível devido às memórias físicas distintas.

|File:HSA-enabled virtual memory with distinct graphics card.svg
   | O HSA traz memória virtual unificada e facilita a passagem de ponteiros pelo PCI Express em vez de copiar todos os dados.

|File:Integrated graphics with distinct memory allocation.svg
 |Na memória principal particionada, uma parte da memória do sistema é alocada exclusivamente para a GPU. Como resultado, a operação de cópia zero não é possível.

|File:HSA-enabled integrated graphics.svg
 |Memória principal unificada, onde GPU e CPU são habilitados para HSA. Isso torna possível a operação de cópia zero.<ref>{{cite web |url=http://www.semiaccurate.com/2014/01/15/technical-look-amds-kaveri-architecture/ |title=Kaveri microarchitecture |date=2014-01-15 |work=[[SemiAccurate]]}}</ref>

|File:MMU and IOMMU.svg
 |A [[Unidade de gerenciamento de memória|MMU]] da CPU e a [[Input–output memory management unit|IOMMU]] da GPU devem estar em conformidade com as especificações de hardware HSA.|align=center

}}
{{clear}}

== Suporte de software ==
[[Ficheiro:Linux_AMD_graphics_stack.svg|miniaturadaimagem|As GPUs AMD contêm certas unidades funcionais adicionais destinadas a serem usadas como parte do HSA. No Linux, o driver do kernel {{Mono|amdkfd}} fornece o suporte necessário.<ref>{{Citar web|ultimo=Michael Larabel|url=https://www.phoronix.com/scan.php?page=news_item&px=MTc0NTk|titulo=AMDKFD Driver Still Evolving For Open-Source HSA On Linux|data=21 de julho de 2014|acessodata=2025-04-30|publicado=[[Phoronix]]}}</ref><ref name="kernelnewbies-3.19">{{Citar web|url=http://kernelnewbies.org/Linux_3.19#head-ae54e026ef7588f4431f7e94178d27d5cd830bbf|titulo=Linux kernel 3.19, Section 1.3. HSA driver for AMD GPU devices|data=8 de fevereiro de 2015|acessodata=2025-04-30|website=kernelnewbies.org}}</ref>]]
Alguns dos recursos específicos do HSA implementados no hardware precisam ser suportados pelo [[Núcleo (sistema operacional)|kernel do sistema operacional]] e por drivers de dispositivo específicos. Por exemplo, o suporte para placas de vídeo AMD [[Radeon]] e [[AMD FirePro]], e APUs baseadas no [[Graphics Core Next]] (GCN), foi incorporado à versão 3.19 do [[Linux (núcleo)|kernel principal do Linux]], lançada em 8 de fevereiro de 2015.<ref name="kernelnewbies-3.19">{{Citar web|url=http://kernelnewbies.org/Linux_3.19#head-ae54e026ef7588f4431f7e94178d27d5cd830bbf|titulo=Linux kernel 3.19, Section 1.3. HSA driver for AMD GPU devices|data=8 de fevereiro de 2015|acessodata=2025-04-30|website=kernelnewbies.org}}</ref> Os programas não interagem diretamente com {{Mono|amdkfd}}, mas enfileiram seus trabalhos utilizando o tempo de execução do HSA.<ref>{{Citar web|url=https://github.com/HSAFoundation/HSA-Runtime-Reference-Source/blob/master/README.md|titulo=HSA-Runtime-Reference-Source/README.md at master|data=14 de novembro de 2014|acessodata=2025-04-30|website=github.com}}</ref> Esta primeira implementação, conhecida como {{Mono|amdkfd}}, foca em APUs "Kaveri" ou "Berlin" e funciona junto com o driver gráfico do kernel Radeon existente.

Adicionalmente, {{Mono|amdkfd}} oferece suporte ao ''heterogeneous queuing'' (HQ), que visa simplificar a distribuição de trabalhos computacionais entre várias CPUs e GPUs da perspectiva do programador. O suporte para ''gerenciamento de memória heterogênea'' (''HMM''), adequado apenas para hardware gráfico com a versão 2 do IOMMU da AMD, foi aceito na versão principal do kernel Linux 4.14.<ref>{{Citar web|url=https://www.xda-developers.com/linux-kernel-414/|titulo=Linux Kernel 4.14 Announced with Secure Memory Encryption and More|data=13 de novembro de 2017|acessodata=2025-04-30|arquivourl=https://web.archive.org/web/20171113231202/https://www.xda-developers.com/linux-kernel-414/|arquivodata=13 de novembro de 2017|urlmorta=dead}}</ref>

O suporte integrado para plataformas HSA foi anunciado para o lançamento "Sumatra" do [[OpenJDK]], previsto para 2015.<ref>{{Citar web|ultimo=Alex Woodie|url=http://www.hpcwire.com/2013/08/26/hsa_foundation_aims_to_boost_javas_gpu_prowess/|titulo=HSA Foundation Aims to Boost Java's GPU Prowess|data=26 de agosto de 2013|acessodata=2025-04-30|website=HPCwire}}</ref>

O [[AMD APP SDK]] é um kit de desenvolvimento de software proprietário da AMD voltado para [[computação paralela]], disponível para Microsoft Windows e Linux. Bolt é uma biblioteca de modelos C++ otimizada para computação heterogênea.<ref>{{Citar web|url=https://github.com/HSA-Libraries/Bolt|titulo=Bolt on github|data=11 de janeiro de 2022|acessodata=2025-04-30|website=[[GitHub]]}}</ref>

O [[GPUOpen]] abrange algumas outras ferramentas de software relacionadas ao HSA. A versão 2.0 do [[CodeXL]] inclui um profiler HSA.<ref>{{Citar web|ultimo=AMD GPUOpen|url=http://gpuopen.com/codexl-2-0-is-here-and-open-source/|titulo=CodeXL 2.0 includes HSA profiler|data=2016-04-19|acessodata=2025-04-30|arquivourl=https://web.archive.org/web/20180627034628/https://gpuopen.com/codexl-2-0-is-here-and-open-source/|arquivodata=27 de junho de 2018|urlmorta=dead}}</ref>

== Suporte de hardware ==
=== AMD ===
Em fevereiro de 2015, apenas as APUs da série A "Kaveri" da AMD (cf. [[Lista de processadores AMD com gráficos 3D#"Kaveri" (2014, 28 nm)|processadores para desktop "Kaveri"]] e [[Lista de processadores AMD com gráficos 3D#"Kaveri" 2014, 28 nm|processadores dispositivos móveis "Kaveri"]]) e o [[PlayStation 4]] da Sony permitiam que a [[Unidade de processamento gráfico#Unidade de processamento gráfico integrada|GPU integrada]] acessasse a memória por meio da versão 2 do IOMMU da AMD. APUs anteriores (Trinity e Richland) incluíam a funcionalidade do IOMMU da versão 2, mas apenas para uso por uma GPU externa conectada via PCI Express.{{carece de fontes}}

As APUs Carrizo e Bristol Ridge posteriores a 2015 também incluem a funcionalidade IOMMU versão 2 para a GPU integrada.{{carece de fontes}}

{{Recursos de APU AMD}}

=== ARM ===
A microarquitetura [[Mali (GPU)#Bifrost|Bifrost]] da ARM, conforme implementada no Mali-G71,<ref>{{Citar web|url=http://www.anandtech.com/show/10375/arm-unveils-bifrost-and-mali-g71/5|titulo=ARM Bifrost GPU Architecture|data=2016-05-30|acessodata=2025-04-30}}</ref> é totalmente compatível com as especificações de hardware HSA 1.1. Em junho de 2016, a ARM não anunciou suporte de software que usaria esse recurso de hardware.

== Ver também ==
* [[GPGPU|Computação de uso geral em unidades de processamento gráfico]] (GPGPU)
* [[Acesso não uniforme a memória|Acesso de memória não uniforme]] (NUMA)
* [[OpenMP]]
* [[Memória compartilhada]]
* [[Zero-cópia|Cópia zero]]

{{Referências}}

== Ligações externas ==
{{Commonscat}}
* {{YouTube|id=ln8JpfaLvbM|title=HSA Heterogeneous System Architecture Overview}} by Vinod Tipparaju at [[ACM/IEEE Supercomputing Conference|SC13]] in November 2013
* [https://web.archive.org/web/20160514070602/http://www.mpsoc-forum.org/previous/2013/slides/8-Hegde.pdf HSA and the software ecosystem]
* [http://www-conf.slac.stanford.edu/xldb2012/talks/xldb2012_wed_1400_MichaelHouston.pdf 2012 – HSA by Michael Houston] {{Webarchive|url=https://web.archive.org/web/20160305141652/http://www-conf.slac.stanford.edu/xldb2012/talks/xldb2012_wed_1400_MichaelHouston.pdf|date=5 de março de 2016}}

{{Processamento gráfico AMD}}


text:
# Folx-les-Caves
Folx-les-Caves (wa. Få-les-Cåves) – dzielnica (section) gminy Orp-Jauche w Belgii, w Regionie Walońskim, w prowincji Brabancja Walońska, w okręgu Nivelles. 1 stycznia 2020 roku liczyła 766 mieszkańców. Do 31 grudnia 1970 samodzielna gmina.

## Demografia
Liczba mieszkańców, stan na 1 stycznia:
| Rok                | 1930 | 1961 | 2020 |
| ------------------ | ---- | ---- | ---- |
| Liczba mieszkańców | 545  | 463  | 766  |

wikiname: plwiki

title: Folx-les-Caves

in_language: pl

wikitext:
{{Miejscowość infobox
 |nazwa                        = Folx-les-Caves
 |nazwa oryginalna             = ''wa.'' Få-les-Cåves
 |zdjęcie                      =
 |opis zdjęcia                 =
 |herb                         =
 |flaga                        =
 |dopełniacz nazwy             = Folx-les-Caves
 |państwo                      = Belgia
 |1. jednostka administracyjna = [[Region Waloński|Waloński]]
 |2. jednostka administracyjna = [[Brabancja Walońska]]
 |3. jednostka administracyjna = [[Nivelles (okręg)|Nivelles]]
 |4. jednostka administracyjna = [[Orp-Jauche]]
 |powierzchnia                 = 4,02
 |wysokość                     =
 |rok                          = 1 stycznia 2020
 |liczba ludności              = 766<ref>[https://statbel.fgov.be/de/open-data/bevoelkerung-nach-wohnsitz-nationalitaet-familienstand-alter-und-geschlecht-10 BUS]</ref>
 |gęstość zaludnienia          = 191
 |numer kierunkowy             =
 |kod pocztowy                 = 1350
 |tablice rejestracyjne        =
 |współrzędne                  = 50°40′N 4°56′E
 |kod mapy                     = Brabancja Walońska
 |commons                      = Category:Folx-les-Caves
 |www                          =
}}
'''Folx-les-Caves''' ([[Język waloński|wa.]] ''Få-les-Cåves'') – dzielnica ''(section)'' gminy [[Orp-Jauche]] w [[Belgia|Belgii]], w [[Region Waloński|Regionie Walońskim]], w prowincji [[Brabancja Walońska]], w okręgu [[Nivelles (okręg)|Nivelles]]. 1 stycznia 2020 roku liczyła 766 mieszkańców. Do 31 grudnia 1970 samodzielna gmina.

== Demografia ==
Liczba mieszkańców, stan na 1 stycznia:
{| class="wikitable"
|+ style="font-weight: bold; font-size: 1.1em; margin-bottom: 0.5em"|
|-style="background: #efefef"
! style="text-align:left;" | Rok !! 1930 !! 1961 !! 2020
|-
| '''Liczba mieszkańców'''|| align="center"| 545 || align="center"| 463 || align="center"| 766
|}

== Zobacz też ==
* [[Caves]]

== Przypisy ==
{{Przypisy}}

{{Nivelles (okręg)}}

{{Kontrola autorytatywna}}

[[Kategoria:Nivelles (okręg)]]
[[Kategoria:Miejscowości w Brabancji Walońskiej]]
[[Kategoria:Dawne gminy w Brabancji Walońskiej]]

title: Folx-les-Caveswa. Få-les-Cåves

Państwo: Belgia

Region: Waloński

Prowincja: Brabancja Walońska

Dystrykt: Nivelles

Gmina: Orp-Jauche


text:
# Locri
Locri är en kommun i storstadsregionen Reggio Calabria, innan 2017 provinsen Reggio Calabria,, i regionen Kalabrien i sydligaste Italien. Kommunen hade 12 367 invånare (2017) och gränsar till kommunerna Antonimina, Gerace, Portigliola, Siderno.
Locri grundades av grekerna under namnet Locri Epizefiri (Lokroi Ephyzephirioi) 673 f. Kr. och var del av Magna Graecia. Staden hade sin storhetstid under 500- och 400-talen då den förmedlade handeln mellan Grekland, Orienten och italikerna. Nedgången började med revolutionerna efter Dionysiernas stormakt i Syrakusa under början av 200-talet f. Kr. Av de rika konstskatterna från Locris storhetstid förvaras tempelskulpturer i Neapels museum.

wikiname: svwiki

title: Locri

in_language: sv

wikitext:
{{omdirigering|Lokroi|kommunen i Grekland|Dimos Lokroi}}
{{Kommunfakta Italien
|namn              = {{SIDNAMN}}
|bild              = Locri-strada.jpg
|bildtext          = Locri Epizefiri
|bildbredd         =
|vapen             =
|region            = [[Kalabrien]]
|storstadsregion   = [[Reggio Calabria (storstadsregion)|Reggio Calabria]]
|förkortning       =
|frazione          =
|grannkommun       =
|lat_g             = 38.24137
|long_g            = 16.26231
|höjd              =
|yta               = 25.75
|ytnot             = <ref name=area/>
|folkmängd         = 12367
|folkmängdsdatum   = 2017
|folkmängdsnot     = <ref name=istat/>
|folknamn          =
|befolkningstäthet = auto
|postnummer        =
|riktnummer        =
|istat             =
|skyddspatron      =
|festdag           =
|positionskarta    = Italien
|positionskartnamn = Italy relief location map.jpg
|karttext          = {{SIDNAMN}}s läge i Italien
|webbplats         =
|fotnot            =
|karta             =
|karttext2         = {{SIDNAMN}}s läge i Reggio Calabria
|officiellt_namn   = Comune di {{SIDNAMN}}
}}
'''Locri''' är en kommun i [[Italiens storstadsregioner|storstadsregionen]] [[Reggio Calabria (storstadsregion)|Reggio Calabria]], innan 2017 provinsen [[Reggio Calabria (provins)|Reggio Calabria]],, i regionen [[Kalabrien]] i sydligaste [[Italien]]. Kommunen hade {{formatnum:12367}} invånare (2017)<ref name=istat/> och gränsar till kommunerna [[Antonimina]], [[Gerace]], [[Portigliola]], [[Siderno]].

Locri grundades av grekerna under namnet ''Locri Epizefiri'' (''Lokroi Ephyzephirioi'') 673 f. Kr. och var del av [[Magna Graecia]]. Staden hade sin storhetstid under 500- och 400-talen då den förmedlade handeln mellan Grekland, Orienten och italikerna. Nedgången började med revolutionerna efter Dionysiernas stormakt i Syrakusa under början av 200-talet f. Kr. Av de rika konstskatterna från Locris storhetstid förvaras tempelskulpturer i Neapels museum.<ref>{{bokref |redaktör=[[Gunnar Carlquist|Carlquist, Gunnar]] |år=1937 |titel=[[Svensk uppslagsbok]]. Bd 17 |utgivningsort=Malmö |utgivare=Svensk Uppslagsbok AB |sid=570}}</ref>
== Referenser ==
<references>
<ref name=area>{{webbref|url=http://dati.istat.it/|titel=Territorial features, Total area (Engelska)|utgivare=Istituto Nazionale di Statistica| hämtdatum=14 september 2019|år = 2017}}</ref>
<ref name=istat>{{Webbref|url=http://demo.istat.it/bilmens2017gen/index.html|titel=Statistiche demografiche ISTAT|hämtdatum=14 september 2019|verk=demo.istat.it|arkivurl=https://web.archive.org/web/20180716065929/http://demo.istat.it/bilmens2017gen/index.html|arkivdatum=16 juli 2018}}</ref>
</references>
{{itwp|url=http://it.wikipedia.org/w/index.php?title=Locri&oldid=32255260}}
== Externa länkar ==
* {{commons|Category:Locri}}

{{Kommuner i storstadsregionen Reggio Calabria}}

[[Kategori:Orter i Kalabrien]]
[[Kategori:Kommuner i storstadsregionen Reggio Calabria]]

Land: Italien

Region: Kalabrien

Storstadsregion: Reggio Calabria

Höjdläge: 7 m ö.h.

Befolkningstäthet: 480 invånare/km²

Tidszon: CET (UTC+1)

- sommartid: CEST (UTC+2)

Skyddspatron: Katarina av Alexandria