tree: 5ee58008528673108e82a8215e74327409840027 [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.bazel
  18. channel.c
  19. channel.h
  20. channel_provider.c
  21. channel_provider.h
  22. CMakeLists.txt
  23. command_buffer.c
  24. command_buffer.h
  25. command_buffer_validation.c
  26. command_buffer_validation.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. fence.c
  41. fence.h
  42. pipeline_layout.c
  43. pipeline_layout.h
  44. README.md
  45. resource.h
  46. semaphore.c
  47. semaphore.h
  48. string_util.c
  49. string_util.h
  50. 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.