title: HSA Foundation
text: # HSA Foundation
  
  ## Scopo
  
  La Fondazione HSA, nata nel Giugno 2012, è un gruppo no-profit di aziende ed università che lavorano nell'ambito delle Architetture di Sistema Eterogenee (Heterogeneous System Architecture), un gruppo di specifiche hardware e software open e gratuite. La Fondazione HSA mira a sviluppare e definire funzionalità e interfacce per diversi tipi di processori di computer, tra cui CPU, processori grafici, FPGA, così come i sistemi di memoria che li collegano. L'architettura risultante, HSA, vuole facilitare la programmazione di sistemi paralleli costruiti da combinazioni eterogenee di questi dispositivi.
  
  Sul sito ufficiale è possibile scaricare gratuitamente tutta la documentazione, gli how-to e i sorgenti dei software utilizzati e sviluppati dalla Fondazione.
  
  ## Membri
  
  La Fondazione HSA è stata fondata da AMD, ARM Holdings, Imagination Technologies, MediaTek, Qualcomm, Samsung e Texas Instruments. Altri membri includono licenziatari di proprietà intellettuali dei semiconduttori, sviluppatori di CPU, GPU, DSP e circuiti integrati specifici per applicazioni (ASIC) basati sulla propria e/o tecnologia con licenza, partner accademici come il Lawrence Livermore National Laboratory, l'Università di Bristol, l'Università di Edimburgo e l'Università di Bologna. La Fondazione HSA ha aderito alla Linux Foundation.
  
  ## Versioni delle specifiche
  
  HSA 1.0 (2014)
  
  La prima versione delle specifiche HSA è compatibile solo con alcuni processori/gpu AMD (Carrizo APU) e offre solo limitate possibilità di programmazione.
  
  HSA 1.1 (2016)
  
  Questa versione estende in maniera significativa sia il supporto hw per altri vendor (ARM, MediaTek, ecc) che quello software.
  
  ## HSAIL
  
  HSA Intermediate Layer (HSAIL) è un insieme di istruzioni virtuali per la computazione parallela.
  
  * Simile a LLVM e SPIR/SPIR-V
  * Finalizzato ad un insieme di istruzioni del compilatore JJT
  * Esplicitamente parallela
  * In grado di stabilire a quale core libero assegnare il lavoro
  