tree: 03c74f1315e152f250f3d8fb1c449e88b9a280e0 [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_transfer.c
  14. buffer_transfer.h
  15. buffer_view.c
  16. buffer_view.h
  17. buffer_view_util.c
  18. buffer_view_util.h
  19. BUILD.bazel
  20. channel.c
  21. channel.h
  22. channel_provider.c
  23. channel_provider.h
  24. CMakeLists.txt
  25. command_buffer.c
  26. command_buffer.h
  27. command_buffer_validation.c
  28. command_buffer_validation.h
  29. detail.h
  30. device.c
  31. device.h
  32. driver.c
  33. driver.h
  34. driver_registry.c
  35. driver_registry.h
  36. event.c
  37. event.h
  38. executable.c
  39. executable.h
  40. executable_cache.c
  41. executable_cache.h
  42. fence.c
  43. fence.h
  44. file.c
  45. file.h
  46. pipeline_layout.c
  47. pipeline_layout.h
  48. README.md
  49. resource.h
  50. semaphore.c
  51. semaphore.h
  52. string_util.c
  53. string_util.h
  54. 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.