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