cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

kean_lau
Journeyman III

HSA and Portable Native Client virtual ISA

At a high level the Heterogeneous Systems Architecture and Google's Portable Native Client virtual instruction set architecture/intermediate language (http://src.chromium.org/viewvc/native_client/data/site/pnacl.pdf) share a lot of similarities:

  • Both are a low level instruction sets which can be encoded in a bytecode form
  • The instruction sets of both are platform neutral
  • The bytecode form of both are intended to be portable
  • The bytecode form of both are JIT compiled on the target machine
  • Both are based on LLVM


Some possible differences include:

  • Instructions in Portable Native Client are executed in a sandbox after JIT
  • Portable Native Client currently only supports 32-bit integers and pointers
  • Portable Native Client seems to only support a weak consistency memory model, though HSA probably has to adopt this too to be platform neutral
  • HSA's instruction set is also suitable for vector processors
  • HSA also supports invoking fixed function hardware
  • On HSA all of the different types of processors share the same virtual address space


With the exception of Portable Native Client's 32-bit integer and pointer limitation, the difference features of Portable Native Client and HSA should be beneficial for each other. HSA could be a pretty ideal platform for Portable Native Client to run on.

AMD is approaching the virtual portable ISA problem from a system level architecture level upwards whereas Google is approaching from an application layer downwards. In the middle where the 2 virtual ISAs exist, they have very similar goals so it doesn't make sense to develop 2 competing platforms.

Has there been collaboration between AMD and Google? Anyone from AMD want to comment?

0 Likes
0 Replies