[llvm] [Offload] Implement better level zero dispatch (PR #218367)

Ɓukasz Plewa via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 28 07:36:58 PDT 2026


================
@@ -57,22 +57,40 @@ Error L0ContextTy::init() {
     return Err;
   }
 
-  ze_result_t RC;
-  CALL_ZE(RC, zeDriverGetExtensionFunctionAddress, zeDriver,
-          "zexKernelGetArgumentSize", (void **)&zexKernelGetArgumentSize);
-  if (RC != ZE_RESULT_SUCCESS)
-    zexKernelGetArgumentSize = nullptr;
-
-  CALL_ZE(RC, zeDriverGetExtensionFunctionAddress, zeDriver,
-          "zeCommandListAppendHostFunction",
-          (void **)&zeCommandListAppendHostFunction);
-  if (RC != ZE_RESULT_SUCCESS)
-    zeCommandListAppendHostFunction = nullptr;
-
-  CALL_ZE(RC, zeDriverGetExtensionFunctionAddress, zeDriver,
-          "zeDriverGetDefaultContext", (void **)&zeDriverGetDefaultContext);
-  if (RC != ZE_RESULT_SUCCESS)
-    zeDriverGetDefaultContext = nullptr;
+  ODBG(OLDT_Init) << "APIs supported by the context with dlopen: ";
+  ODBG(OLDT_Init) << "  zeCommandListAppendLaunchKernelWithArguments: "
+                  << (LaunchKernelWithArguments.available() ? "yes" : "no");
+  ODBG(OLDT_Init) << "  zexKernelGetArgumentSize: "
+                  << (KernelGetArgumentSize.available() ? "yes" : "no");
+  ODBG(OLDT_Init) << "  zeCommandListAppendHostFunction: "
+                  << (CommandListAppendHostFunction.available() ? "yes" : "no");
+  ODBG(OLDT_Init) << "  zeDriverGetDefaultContext: "
+                  << (DriverGetDefaultContext.available() ? "yes" : "no");
+
+  LaunchKernelWithArguments.tryLoadingExperimental(
+      zeDriver, "zeCommandListAppendLaunchKernelWithArguments");
+  KernelGetArgumentSize.tryLoadingExperimental(zeDriver,
+                                               "zexKernelGetArgumentSize");
+  CommandListAppendHostFunction.tryLoadingExperimental(
+      zeDriver, "zeCommandListAppendHostFunction");
+  DriverGetDefaultContext.tryLoadingExperimental(zeDriver,
+                                                 "zeDriverGetDefaultContext");
+
+  ODBG(OLDT_Init) << "APIs supported by the context with added extensions: ";
+  ODBG(OLDT_Init) << "  zeCommandListAppendLaunchKernelWithArguments: "
+                  << (LaunchKernelWithArguments.available() ? "yes" : "no");
+  ODBG(OLDT_Init) << "  zexKernelGetArgumentSize: "
+                  << (KernelGetArgumentSize.available() ? "yes" : "no");
+  ODBG(OLDT_Init) << "  zeCommandListAppendHostFunction: "
+                  << (CommandListAppendHostFunction.available() ? "yes" : "no");
+  ODBG(OLDT_Init) << "  zeDriverGetDefaultContext: "
+                  << (DriverGetDefaultContext.available() ? "yes" : "no");
+
+  if (!CommandListAppendHostFunction.available()) {
----------------
lplewa wrote:

remove {}

https://github.com/llvm/llvm-project/pull/218367


More information about the llvm-commits mailing list