tree: f21aa6788e73606b43406d2e3a4dd19d984b05e3
  1. cts/
  2. drivers/
  3. local/
  4. testing/
  5. utils/
  6. allocator.c
  7. allocator.h
  8. allocator_heap.c
  9. api.h
  10. buffer.c
  11. buffer.h
  12. buffer_heap.c
  13. buffer_heap_impl.h
  14. buffer_transfer.c
  15. buffer_transfer.h
  16. buffer_view.c
  17. buffer_view.h
  18. buffer_view_util.c
  19. buffer_view_util.h
  20. BUILD.bazel
  21. channel.c
  22. channel.h
  23. channel_provider.c
  24. channel_provider.h
  25. CMakeLists.txt
  26. command_buffer.c
  27. command_buffer.h
  28. command_buffer_validation.c
  29. command_buffer_validation.h
  30. detail.h
  31. device.c
  32. device.h
  33. device_group.c
  34. device_group.h
  35. device_group_test.cc
  36. driver.c
  37. driver.h
  38. driver_registry.c
  39. driver_registry.h
  40. event.c
  41. event.h
  42. executable.c
  43. executable.h
  44. executable_cache.c
  45. executable_cache.h
  46. fence.c
  47. fence.h
  48. file.c
  49. file.h
  50. queue.h
  51. README.md
  52. resource.h
  53. semaphore.c
  54. semaphore.h
  55. string_util.c
  56. string_util.h
  57. string_util_test.cc
  58. topology.c
  59. topology.h
  60. topology_builder.c
  61. topology_builder.h
  62. topology_builder_test.cc
  63. topology_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.