tree: b7e65857054175d6ec35e4d6415a3e3baa726bf4 [path history] [tgz]
  1. cts/
  2. cuda/
  3. drivers/
  4. dylib/
  5. local/
  6. utils/
  7. vmvx/
  8. vulkan/
  9. allocator.c
  10. allocator.h
  11. allocator_heap.c
  12. api.h
  13. buffer.c
  14. buffer.h
  15. buffer_heap.c
  16. buffer_heap_impl.h
  17. buffer_view.c
  18. buffer_view.h
  19. buffer_view_util.c
  20. buffer_view_util.h
  21. BUILD
  22. CMakeLists.txt
  23. command_buffer.c
  24. command_buffer.h
  25. command_buffer_validation.c
  26. command_buffer_validation.h
  27. descriptor_set.c
  28. descriptor_set.h
  29. descriptor_set_layout.c
  30. descriptor_set_layout.h
  31. detail.h
  32. device.c
  33. device.h
  34. driver.c
  35. driver.h
  36. driver_registry.c
  37. driver_registry.h
  38. event.c
  39. event.h
  40. executable.c
  41. executable.h
  42. executable_cache.c
  43. executable_cache.h
  44. executable_layout.c
  45. executable_layout.h
  46. README.md
  47. resource.h
  48. semaphore.c
  49. semaphore.h
  50. string_util.c
  51. string_util.h
  52. string_util_test.cc
iree/hal/README.md

IREE Hardware Abstraction Layer (HAL)

The IREE HAL expresses a low-level abstraction over modern compute APIs like Vulkan (CPUs count too!). Each implementation of the HAL interface can:

  • Enumerate and query devices and their capabilities
  • Define executable code that runs on the device
  • Allocate unified or discrete memory and provide cache control
  • Organize work into sequences for deferred submission
  • Provide explicit synchronization primitives for ordering submissions

Refer to IREE's presentations and talks for further details.

Testing

See the cts/ folder for the HAL Conformance Test Suite.