Removing legacy pipeline layout and dispatch binding model.
This does not yet rename the methods and is just stripping all of the
legacy ops and methods.
Progress on #18154.
diff --git a/tools/iree-benchmark-executable-main.c b/tools/iree-benchmark-executable-main.c
index ff76ade..8c09896 100644
--- a/tools/iree-benchmark-executable-main.c
+++ b/tools/iree-benchmark-executable-main.c
@@ -43,41 +43,29 @@
// dynamically growable.
#define IREE_HAL_MAX_EXECUTABLE_CONSTANT_COUNT 512
// Total number of push constants we (currently) allow any executable to have.
-#define IREE_HAL_MAX_PUSH_CONSTANT_COUNT 64
-// Maximum number of descriptor sets in an pipeline layout.
-#define IREE_HAL_MAX_DESCRIPTOR_SET_COUNT 2
+#define IREE_HAL_MAX_CONSTANT_COUNT 64
// Total number of bindings we (currently) allow any executable to have.
-#define IREE_HAL_MAX_TOTAL_BINDING_COUNT \
- (IREE_HAL_MAX_DESCRIPTOR_SET_COUNT * 32)
+#define IREE_HAL_MAX_BINDING_COUNT 64
// Parsed dispatch parameters from flags.
// Used to construct the dispatch parameters for the benchmark invocation.
struct {
- int32_t set_count;
- struct {
- // For now we only track the binding counts and assume they are all storage
- // buffers. When we support more types we'll need an encoding.
- int32_t binding_count;
- } sets[IREE_HAL_MAX_DESCRIPTOR_SET_COUNT];
-
int32_t executable_constant_count;
union {
uint32_t ui32;
} executable_constants[IREE_HAL_MAX_EXECUTABLE_CONSTANT_COUNT];
- int32_t push_constant_count;
+ int32_t constant_count;
union {
uint32_t ui32;
- } push_constants[IREE_HAL_MAX_PUSH_CONSTANT_COUNT];
+ } constants[IREE_HAL_MAX_CONSTANT_COUNT];
int32_t binding_count;
- iree_string_view_t binding_specs[IREE_HAL_MAX_TOTAL_BINDING_COUNT];
- char binding_cconv[IREE_HAL_MAX_TOTAL_BINDING_COUNT];
- iree_hal_descriptor_set_layout_binding_t
- binding_layouts[IREE_HAL_MAX_TOTAL_BINDING_COUNT];
+ iree_string_view_t binding_specs[IREE_HAL_MAX_BINDING_COUNT];
+ char binding_cconv[IREE_HAL_MAX_BINDING_COUNT];
} parsed_params = {
.executable_constant_count = 0,
- .push_constant_count = 0,
+ .constant_count = 0,
.binding_count = 0,
};
@@ -117,11 +105,10 @@
&parsed_params, executable_constant,
"Appends a uint32_t executable constant value.\n");
-static iree_status_t parse_push_constant(iree_string_view_t flag_name,
- void* storage,
- iree_string_view_t value) {
- IREE_ASSERT_LE(parsed_params.push_constant_count + 1,
- IREE_ARRAYSIZE(parsed_params.push_constants),
+static iree_status_t parse_constant(iree_string_view_t flag_name, void* storage,
+ iree_string_view_t value) {
+ IREE_ASSERT_LE(parsed_params.constant_count + 1,
+ IREE_ARRAYSIZE(parsed_params.constants),
"too many push constants");
uint32_t value_ui32 = 0;
if (!iree_string_view_atoi_uint32(value, &value_ui32)) {
@@ -130,27 +117,26 @@
"invalid push constant value `%.*s`; expects uint32_t", (int)value.size,
value.data);
}
- parsed_params.push_constants[parsed_params.push_constant_count++].ui32 =
- value_ui32;
+ parsed_params.constants[parsed_params.constant_count++].ui32 = value_ui32;
return iree_ok_status();
}
-static void print_push_constant(iree_string_view_t flag_name, void* storage,
- FILE* file) {
- if (parsed_params.push_constant_count == 0) {
+static void print_constant(iree_string_view_t flag_name, void* storage,
+ FILE* file) {
+ if (parsed_params.constant_count == 0) {
fprintf(file, "# --%.*s=[integer value]\n", (int)flag_name.size,
flag_name.data);
return;
}
- for (int32_t i = 0; i < parsed_params.push_constant_count; ++i) {
+ for (int32_t i = 0; i < parsed_params.constant_count; ++i) {
fprintf(file, "--%.*s=%u", (int)flag_name.size, flag_name.data,
- parsed_params.push_constants[i].ui32);
- if (i < parsed_params.push_constant_count - 1) {
+ parsed_params.constants[i].ui32);
+ if (i < parsed_params.constant_count - 1) {
fprintf(file, "\n");
}
}
}
-IREE_FLAG_CALLBACK(parse_push_constant, print_push_constant, &parsed_params,
- push_constant, "Appends a uint32_t push constant value.\n");
+IREE_FLAG_CALLBACK(parse_constant, print_constant, &parsed_params, constant,
+ "Appends a uint32_t constant value.\n");
static iree_status_t parse_binding(iree_string_view_t flag_name, void* storage,
iree_string_view_t value) {
@@ -160,12 +146,6 @@
int32_t i = parsed_params.binding_count++;
parsed_params.binding_specs[i] = value;
parsed_params.binding_cconv[i] = 'r';
- // TODO(benvanik): allow for a specification of type/immutability.
- parsed_params.binding_layouts[i] = (iree_hal_descriptor_set_layout_binding_t){
- .binding = (uint32_t)i,
- .type = IREE_HAL_DESCRIPTOR_TYPE_STORAGE_BUFFER,
- .flags = IREE_HAL_DESCRIPTOR_FLAG_NONE,
- };
return iree_ok_status();
}
static void print_binding(iree_string_view_t flag_name, void* storage,
@@ -239,10 +219,9 @@
IREE_HAL_COMMAND_CATEGORY_DISPATCH, IREE_HAL_QUEUE_AFFINITY_ANY,
/*binding_capacity=*/0, &command_buffer));
IREE_RETURN_IF_ERROR(iree_hal_command_buffer_begin(command_buffer));
- iree_const_byte_span_t constants =
- iree_make_const_byte_span(&parsed_params.push_constants[0].ui32,
- parsed_params.push_constant_count *
- sizeof(parsed_params.push_constants[0]));
+ iree_const_byte_span_t constants = iree_make_const_byte_span(
+ &parsed_params.constants[0].ui32,
+ parsed_params.constant_count * sizeof(parsed_params.constants[0]));
iree_hal_buffer_ref_list_t bindings = {
.count = parsed_params.binding_count,
.values = args->bindings,
@@ -372,7 +351,7 @@
(iree_string_view_list_t){parsed_params.binding_count,
parsed_params.binding_specs},
device, device_allocator, host_allocator, &binding_list));
- iree_hal_buffer_ref_t bindings[IREE_HAL_MAX_TOTAL_BINDING_COUNT];
+ iree_hal_buffer_ref_t bindings[IREE_HAL_MAX_BINDING_COUNT];
for (iree_host_size_t i = 0; i < parsed_params.binding_count; ++i) {
iree_vm_ref_t value = iree_vm_ref_null();
IREE_RETURN_IF_ERROR(iree_vm_list_get_ref_assign(binding_list, i, &value));
@@ -389,7 +368,6 @@
i);
}
bindings[i] = iree_hal_make_buffer_ref(buffer, 0, IREE_WHOLE_BUFFER);
- bindings[i].ordinal = i;
}
// Setup the specification used to perform the executable load.