Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion include/ur_api.h
Original file line number Diff line number Diff line change
Expand Up @@ -4490,7 +4490,9 @@ typedef enum ur_program_info_t {
UR_PROGRAM_INFO_DEVICES = 3, ///< [::ur_device_handle_t[]] Return list of devices associated with a program.
///< This is either the list of devices associated with the context or a
///< subset of those devices when the program is created using ::urProgramCreateWithBinary.
UR_PROGRAM_INFO_SOURCE = 4, ///< [char[]] Return program source associated with Program.
UR_PROGRAM_INFO_IL = 4, ///< [char[]] Return program IL if the program was created with
///< ::urProgramCreateWithIL, otherwise return size will be set to 0 and
///< nothing will be returned.
UR_PROGRAM_INFO_BINARY_SIZES = 5, ///< [size_t[]] Return program binary sizes for each device.
UR_PROGRAM_INFO_BINARIES = 6, ///< [unsigned char[]] Return program binaries for all devices for this
///< Program.
Expand Down
6 changes: 3 additions & 3 deletions include/ur_print.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -7501,8 +7501,8 @@ inline std::ostream &operator<<(std::ostream &os, enum ur_program_info_t value)
case UR_PROGRAM_INFO_DEVICES:
os << "UR_PROGRAM_INFO_DEVICES";
break;
case UR_PROGRAM_INFO_SOURCE:
os << "UR_PROGRAM_INFO_SOURCE";
case UR_PROGRAM_INFO_IL:
os << "UR_PROGRAM_INFO_IL";
break;
case UR_PROGRAM_INFO_BINARY_SIZES:
os << "UR_PROGRAM_INFO_BINARY_SIZES";
Expand Down Expand Up @@ -7584,7 +7584,7 @@ inline ur_result_t printTagged(std::ostream &os, const void *ptr, ur_program_inf
}
os << "}";
} break;
case UR_PROGRAM_INFO_SOURCE: {
case UR_PROGRAM_INFO_IL: {

const char *tptr = (const char *)ptr;
printPtr(os, tptr);
Expand Down
4 changes: 2 additions & 2 deletions scripts/core/program.yml
Original file line number Diff line number Diff line change
Expand Up @@ -376,8 +376,8 @@ etors:
desc: |
[$x_device_handle_t[]] Return list of devices associated with a program.
This is either the list of devices associated with the context or a subset of those devices when the program is created using $xProgramCreateWithBinary.
- name: SOURCE
desc: "[char[]] Return program source associated with Program."
- name: IL
desc: "[char[]] Return program IL if the program was created with $xProgramCreateWithIL, otherwise return size will be set to 0 and nothing will be returned."
- name: BINARY_SIZES
desc: "[size_t[]] Return program binary sizes for each device."
- name: BINARIES
Expand Down
3 changes: 1 addition & 2 deletions source/adapters/cuda/program.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -399,8 +399,6 @@ urProgramGetInfo(ur_program_handle_t hProgram, ur_program_info_t propName,
return ReturnValue(1u);
case UR_PROGRAM_INFO_DEVICES:
return ReturnValue(&hProgram->Device, 1);
case UR_PROGRAM_INFO_SOURCE:
return ReturnValue(hProgram->Binary);
case UR_PROGRAM_INFO_BINARY_SIZES:
return ReturnValue(&hProgram->BinarySizeInBytes, 1);
case UR_PROGRAM_INFO_BINARIES:
Expand All @@ -410,6 +408,7 @@ urProgramGetInfo(ur_program_handle_t hProgram, ur_program_info_t propName,
UR_ASSERT(getKernelNames(hProgram), UR_RESULT_ERROR_UNSUPPORTED_FEATURE);
return UR_RESULT_ERROR_UNSUPPORTED_ENUMERATION;
case UR_PROGRAM_INFO_NUM_KERNELS:
case UR_PROGRAM_INFO_IL:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm wondering, if we wanted to implement this for CUDA, we would have to find way to figure out which binaries are PTX right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, so it's doable but we should probably wait for a use case to come up before going to the trouble

return UR_RESULT_ERROR_UNSUPPORTED_ENUMERATION;
default:
break;
Expand Down
4 changes: 2 additions & 2 deletions source/adapters/hip/program.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -403,14 +403,14 @@ urProgramGetInfo(ur_program_handle_t hProgram, ur_program_info_t propName,
return ReturnValue(1u);
case UR_PROGRAM_INFO_DEVICES:
return ReturnValue(&hProgram->getContext()->getDevices()[0], 1);
case UR_PROGRAM_INFO_SOURCE:
return ReturnValue(hProgram->Binary);
case UR_PROGRAM_INFO_BINARY_SIZES:
return ReturnValue(&hProgram->BinarySizeInBytes, 1);
case UR_PROGRAM_INFO_BINARIES:
return ReturnValue(&hProgram->Binary, 1);
case UR_PROGRAM_INFO_KERNEL_NAMES:
return getKernelNames(hProgram);
case UR_PROGRAM_INFO_IL:
return UR_RESULT_ERROR_UNSUPPORTED_ENUMERATION;
default:
break;
}
Expand Down
6 changes: 2 additions & 4 deletions source/adapters/level_zero/program.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -223,8 +223,6 @@ ur_result_t urProgramBuildExp(
hProgram->ZeBuildLogMap.insert(std::make_pair(ZeDevice, ZeBuildLog));
}

// We no longer need the IL / native code.
hProgram->Code.reset();
if (!hProgram->ZeModuleMap.empty())
hProgram->ZeModule = hProgram->ZeModuleMap.begin()->second;
if (!hProgram->ZeBuildLogMap.empty())
Expand Down Expand Up @@ -816,8 +814,8 @@ ur_result_t urProgramGetInfo(
} catch (...) {
return UR_RESULT_ERROR_UNKNOWN;
}
case UR_PROGRAM_INFO_SOURCE:
return ReturnValue(Program->Code.get());
case UR_PROGRAM_INFO_IL:
return ReturnValue(Program->Code.get(), Program->CodeLength);
default:
return UR_RESULT_ERROR_INVALID_ENUMERATION;
}
Expand Down
4 changes: 2 additions & 2 deletions source/adapters/native_cpu/program.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -204,15 +204,15 @@ urProgramGetInfo(ur_program_handle_t hProgram, ur_program_info_t propName,
return returnValue(1u);
case UR_PROGRAM_INFO_DEVICES:
return returnValue(hProgram->_ctx->_device);
case UR_PROGRAM_INFO_SOURCE:
return returnValue(nullptr);
case UR_PROGRAM_INFO_BINARY_SIZES:
return returnValue("foo");
case UR_PROGRAM_INFO_BINARIES:
return returnValue("foo");
case UR_PROGRAM_INFO_KERNEL_NAMES: {
return returnValue("foo");
}
case UR_PROGRAM_INFO_IL:
return UR_RESULT_ERROR_UNSUPPORTED_ENUMERATION;
default:
break;
}
Expand Down
4 changes: 2 additions & 2 deletions source/adapters/opencl/program.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,8 @@ static cl_int mapURProgramInfoToCL(ur_program_info_t URPropName) {
return CL_PROGRAM_NUM_DEVICES;
case UR_PROGRAM_INFO_DEVICES:
return CL_PROGRAM_DEVICES;
case UR_PROGRAM_INFO_SOURCE:
return CL_PROGRAM_SOURCE;
case UR_PROGRAM_INFO_IL:
return CL_PROGRAM_IL;
case UR_PROGRAM_INFO_BINARY_SIZES:
return CL_PROGRAM_BINARY_SIZES;
case UR_PROGRAM_INFO_BINARIES:
Expand Down
3 changes: 0 additions & 3 deletions test/conformance/program/program_adapter_cuda.match
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ urProgramBuildTest.BuildFailure/NVIDIA_CUDA_BACKEND___{{.*}}_
{{OPT}}urProgramCreateWithILTest.BuildInvalidProgram/NVIDIA_CUDA_BACKEND___{{.*}}
# This test flakily fails
{{OPT}}urProgramGetBuildInfoSingleTest.LogIsNullTerminated/NVIDIA_CUDA_BACKEND___{{.*}}
# CUDA doesn't expose kernel numbers or names
urProgramGetInfoTest.Success/NVIDIA_CUDA_BACKEND___{{.*}}___UR_PROGRAM_INFO_NUM_KERNELS
urProgramGetInfoTest.Success/NVIDIA_CUDA_BACKEND___{{.*}}___UR_PROGRAM_INFO_KERNEL_NAMES
{{OPT}}urProgramSetSpecializationConstantsTest.Success/NVIDIA_CUDA_BACKEND___{{.*}}
{{OPT}}urProgramSetSpecializationConstantsTest.UseDefaultValue/NVIDIA_CUDA_BACKEND___{{.*}}
urProgramSetMultipleSpecializationConstantsTest.MultipleCalls/NVIDIA_CUDA_BACKEND___{{.*}}
Expand Down
14 changes: 7 additions & 7 deletions test/conformance/program/program_adapter_native_cpu.match
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
{{OPT}}urProgramGetInfoTest.Success/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_CONTEXT
{{OPT}}urProgramGetInfoTest.Success/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_NUM_DEVICES
{{OPT}}urProgramGetInfoTest.Success/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_DEVICES
{{OPT}}urProgramGetInfoTest.Success/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_SOURCE
{{OPT}}urProgramGetInfoTest.Success/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_IL
{{OPT}}urProgramGetInfoTest.Success/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_BINARY_SIZES
{{OPT}}urProgramGetInfoTest.Success/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_BINARIES
{{OPT}}urProgramGetInfoTest.Success/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_NUM_KERNELS
Expand All @@ -66,7 +66,7 @@
{{OPT}}urProgramGetInfoTest.InvalidNullHandleProgram/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_CONTEXT
{{OPT}}urProgramGetInfoTest.InvalidNullHandleProgram/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_NUM_DEVICES
{{OPT}}urProgramGetInfoTest.InvalidNullHandleProgram/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_DEVICES
{{OPT}}urProgramGetInfoTest.InvalidNullHandleProgram/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_SOURCE
{{OPT}}urProgramGetInfoTest.InvalidNullHandleProgram/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_IL
{{OPT}}urProgramGetInfoTest.InvalidNullHandleProgram/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_BINARY_SIZES
{{OPT}}urProgramGetInfoTest.InvalidNullHandleProgram/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_BINARIES
{{OPT}}urProgramGetInfoTest.InvalidNullHandleProgram/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_NUM_KERNELS
Expand All @@ -75,7 +75,7 @@
{{OPT}}urProgramGetInfoTest.InvalidEnumeration/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_CONTEXT
{{OPT}}urProgramGetInfoTest.InvalidEnumeration/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_NUM_DEVICES
{{OPT}}urProgramGetInfoTest.InvalidEnumeration/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_DEVICES
{{OPT}}urProgramGetInfoTest.InvalidEnumeration/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_SOURCE
{{OPT}}urProgramGetInfoTest.InvalidEnumeration/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_IL
{{OPT}}urProgramGetInfoTest.InvalidEnumeration/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_BINARY_SIZES
{{OPT}}urProgramGetInfoTest.InvalidEnumeration/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_BINARIES
{{OPT}}urProgramGetInfoTest.InvalidEnumeration/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_NUM_KERNELS
Expand All @@ -84,7 +84,7 @@
{{OPT}}urProgramGetInfoTest.InvalidSizeZero/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_CONTEXT
{{OPT}}urProgramGetInfoTest.InvalidSizeZero/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_NUM_DEVICES
{{OPT}}urProgramGetInfoTest.InvalidSizeZero/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_DEVICES
{{OPT}}urProgramGetInfoTest.InvalidSizeZero/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_SOURCE
{{OPT}}urProgramGetInfoTest.InvalidSizeZero/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_IL
{{OPT}}urProgramGetInfoTest.InvalidSizeZero/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_BINARY_SIZES
{{OPT}}urProgramGetInfoTest.InvalidSizeZero/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_BINARIES
{{OPT}}urProgramGetInfoTest.InvalidSizeZero/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_NUM_KERNELS
Expand All @@ -93,7 +93,7 @@
{{OPT}}urProgramGetInfoTest.InvalidSizeSmall/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_CONTEXT
{{OPT}}urProgramGetInfoTest.InvalidSizeSmall/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_NUM_DEVICES
{{OPT}}urProgramGetInfoTest.InvalidSizeSmall/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_DEVICES
{{OPT}}urProgramGetInfoTest.InvalidSizeSmall/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_SOURCE
{{OPT}}urProgramGetInfoTest.InvalidSizeSmall/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_IL
{{OPT}}urProgramGetInfoTest.InvalidSizeSmall/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_BINARY_SIZES
{{OPT}}urProgramGetInfoTest.InvalidSizeSmall/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_BINARIES
{{OPT}}urProgramGetInfoTest.InvalidSizeSmall/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_NUM_KERNELS
Expand All @@ -102,7 +102,7 @@
{{OPT}}urProgramGetInfoTest.InvalidNullPointerPropValue/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_CONTEXT
{{OPT}}urProgramGetInfoTest.InvalidNullPointerPropValue/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_NUM_DEVICES
{{OPT}}urProgramGetInfoTest.InvalidNullPointerPropValue/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_DEVICES
{{OPT}}urProgramGetInfoTest.InvalidNullPointerPropValue/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_SOURCE
{{OPT}}urProgramGetInfoTest.InvalidNullPointerPropValue/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_IL
{{OPT}}urProgramGetInfoTest.InvalidNullPointerPropValue/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_BINARY_SIZES
{{OPT}}urProgramGetInfoTest.InvalidNullPointerPropValue/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_BINARIES
{{OPT}}urProgramGetInfoTest.InvalidNullPointerPropValue/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_NUM_KERNELS
Expand All @@ -111,7 +111,7 @@
{{OPT}}urProgramGetInfoTest.InvalidNullPointerPropValueRet/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_CONTEXT
{{OPT}}urProgramGetInfoTest.InvalidNullPointerPropValueRet/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_NUM_DEVICES
{{OPT}}urProgramGetInfoTest.InvalidNullPointerPropValueRet/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_DEVICES
{{OPT}}urProgramGetInfoTest.InvalidNullPointerPropValueRet/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_SOURCE
{{OPT}}urProgramGetInfoTest.InvalidNullPointerPropValueRet/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_IL
{{OPT}}urProgramGetInfoTest.InvalidNullPointerPropValueRet/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_BINARY_SIZES
{{OPT}}urProgramGetInfoTest.InvalidNullPointerPropValueRet/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_BINARIES
{{OPT}}urProgramGetInfoTest.InvalidNullPointerPropValueRet/SYCL_NATIVE_CPU___SYCL_Native_CPU__{{.*}}__UR_PROGRAM_INFO_NUM_KERNELS
Expand Down
1 change: 0 additions & 1 deletion test/conformance/program/program_adapter_opencl.match
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
urProgramCreateWithILTest.BuildInvalidProgram/Intel_R__OpenCL___{{.*}}_
urProgramGetInfoTest.Success/Intel_R__OpenCL___{{.*}}___UR_PROGRAM_INFO_SOURCE
14 changes: 11 additions & 3 deletions test/conformance/program/urProgramGetInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ UUR_TEST_SUITE_P(
urProgramGetInfoTest,
::testing::Values(UR_PROGRAM_INFO_REFERENCE_COUNT, UR_PROGRAM_INFO_CONTEXT,
UR_PROGRAM_INFO_NUM_DEVICES, UR_PROGRAM_INFO_DEVICES,
UR_PROGRAM_INFO_SOURCE, UR_PROGRAM_INFO_BINARY_SIZES,
UR_PROGRAM_INFO_IL, UR_PROGRAM_INFO_BINARY_SIZES,
UR_PROGRAM_INFO_BINARIES, UR_PROGRAM_INFO_NUM_KERNELS,
UR_PROGRAM_INFO_KERNEL_NAMES),
uur::deviceTestWithParamPrinter<ur_program_info_t>);
Expand Down Expand Up @@ -52,8 +52,12 @@ TEST_P(urProgramGetInfoTest, Success) {
sizeof(binaries[0]), binaries,
nullptr));
} else {
ASSERT_SUCCESS(urProgramGetInfo(program, property_name, 0, nullptr,
&property_size));
auto result = urProgramGetInfo(program, property_name, 0, nullptr,
&property_size);
if (result != UR_RESULT_SUCCESS) {
ASSERT_EQ_RESULT(result, UR_RESULT_ERROR_UNSUPPORTED_ENUMERATION);
return;
}
property_value.resize(property_size);
ASSERT_SUCCESS(urProgramGetInfo(program, property_name, property_size,
property_value.data(), nullptr));
Expand Down Expand Up @@ -103,6 +107,10 @@ TEST_P(urProgramGetInfoTest, Success) {
ASSERT_STRNE(returned_kernel_names, "");
break;
}
case UR_PROGRAM_INFO_IL: {
ASSERT_EQ(property_value, *il_binary.get());
break;
}
default:
break;
}
Expand Down