)]}'
{
  "commit": "11388b8f54620c1f960aa9eb7a8d573e3b6d1335",
  "tree": "dfa9f19a0be3eb048efc79380b424595ace6ef4f",
  "parents": [
    "bed276374644b04750d7dbb4f556c8f7756102cf",
    "028acfb596c6b3b1d10764d3d4552911a67fca45"
  ],
  "author": {
    "name": "Lei Zhang",
    "email": "antiagainst@google.com",
    "time": "Wed Jun 14 00:41:18 2023 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Jun 14 00:41:18 2023 -0400"
  },
  "message": "[metal] Implement a Metal HAL driver (#12713)\n\nThis pull request resurrects the previously removed Metal\r\nHAL driver due to HAL revamping. It now implements the\r\nHAL driver using Objective-C, instead of Objective-C++\r\nlike previously. We also explicitly track resource lifetimes\r\nand manage dependencies, following IREE explicitness.\r\n\r\nRight now the following features are implemented:\r\n- HAL driver: device emulation, and some feature printing\r\n- HAL device: resource creation, kernel launches, and sync\r\n- HAL allocation: simple allocator without any caching or sub\r\n  allocation (we expect common layer for those later)\r\n- HAL command buffer: one-shot command buffer, both\r\n  direct and indirect dispatches\r\n- HAL executables: both compile to MSL and `.metallib`\r\n- HAL executable caches: just simple no op cache for now\r\n- HAL builtin executables: for filling/copying buffers\r\n- HAL semaphore: real async queue execute, but not\r\n  stream-ordered allocation yet\r\n\r\nThe implementation right now assumes Metal3 devices. \r\nIt passes all existing CTS tests, end-to-end StableHLO\r\nand TOSA op and model tests in tree for Apple M1\r\nMacBook.\r\n\r\nFixes https://github.com/openxla/iree/issues/4370",
  "tree_diff": []
}
