Adding legacy ROCM tracing zones. (#16735)
diff --git a/experimental/rocm/direct_command_buffer.c b/experimental/rocm/direct_command_buffer.c index 0697aee..ffa5703 100644 --- a/experimental/rocm/direct_command_buffer.c +++ b/experimental/rocm/direct_command_buffer.c
@@ -119,11 +119,27 @@ static iree_status_t iree_hal_rocm_direct_command_buffer_begin( iree_hal_command_buffer_t* base_command_buffer) { + iree_hal_rocm_direct_command_buffer_t* command_buffer = + iree_hal_rocm_direct_command_buffer_cast(base_command_buffer); + (void)command_buffer; + + IREE_ROCM_TRACE_ZONE_BEGIN_EXTERNAL( + command_buffer->tracing_context, 0, + /*file_name=*/NULL, 0, /*line=*/0, /*func_name=*/NULL, 0, + "iree_hal_rocm_direct_command_buffer", + strlen("iree_hal_rocm_direct_command_buffer")); + return iree_ok_status(); } static iree_status_t iree_hal_rocm_direct_command_buffer_end( iree_hal_command_buffer_t* base_command_buffer) { + iree_hal_rocm_direct_command_buffer_t* command_buffer = + iree_hal_rocm_direct_command_buffer_cast(base_command_buffer); + (void)command_buffer; + + IREE_ROCM_TRACE_ZONE_END(command_buffer->tracing_context, 0); + return iree_ok_status(); } @@ -131,12 +147,23 @@ iree_hal_command_buffer_t* base_command_buffer, iree_string_view_t label, iree_hal_label_color_t label_color, const iree_hal_label_location_t* location) { - // TODO(benvanik): tracy event stack. + iree_hal_rocm_direct_command_buffer_t* command_buffer = + iree_hal_rocm_direct_command_buffer_cast(base_command_buffer); + (void)command_buffer; + + IREE_ROCM_TRACE_ZONE_BEGIN_EXTERNAL( + command_buffer->tracing_context, 0, location ? location->file.data : NULL, + location ? location->file.size : 0, location ? location->line : 0, + /*func_name=*/NULL, 0, label.data, label.size); } static void iree_hal_rocm_direct_command_buffer_end_debug_group( iree_hal_command_buffer_t* base_command_buffer) { - // TODO(benvanik): tracy event stack. + iree_hal_rocm_direct_command_buffer_t* command_buffer = + iree_hal_rocm_direct_command_buffer_cast(base_command_buffer); + (void)command_buffer; + + IREE_CUDA_TRACE_ZONE_END(command_buffer->tracing_context, 0); } static iree_status_t iree_hal_rocm_direct_command_buffer_execution_barrier( @@ -193,6 +220,8 @@ iree_hal_rocm_direct_command_buffer_t* command_buffer = iree_hal_rocm_direct_command_buffer_cast(base_command_buffer); + IREE_ROCM_TRACE_ZONE_BEGIN(command_buffer->tracing_context, 0); + hipDeviceptr_t target_device_buffer = iree_hal_rocm_buffer_device_pointer( iree_hal_buffer_allocated_buffer(target_buffer)); target_offset += iree_hal_buffer_byte_offset(target_buffer); @@ -201,33 +230,38 @@ size_t num_elements = length / pattern_length; // TODO(raikonenfnu): Currently using NULL stream, need to figure out way to // access proper stream from command buffer + iree_status_t status = iree_ok_status(); switch (pattern_length) { case 4: { - ROCM_RETURN_IF_ERROR( + status = ROCM_RESULT_TO_STATUS( command_buffer->context->syms, hipMemsetD32Async(dst, *(const uint32_t*)(pattern), num_elements, 0), "hipMemsetD32Async"); break; } case 2: { - ROCM_RETURN_IF_ERROR( + status = ROCM_RESULT_TO_STATUS( command_buffer->context->syms, hipMemsetD16Async(dst, *(const uint16_t*)(pattern), num_elements, 0), "hipMemsetD16Async"); break; } case 1: { - ROCM_RETURN_IF_ERROR( + status = ROCM_RESULT_TO_STATUS( command_buffer->context->syms, hipMemsetD8Async(dst, *(const uint8_t*)(pattern), num_elements, 0), "hipMemsetD8Async"); break; } - default: - return iree_make_status(IREE_STATUS_INTERNAL, - "unsupported fill pattern length"); + default: { + status = iree_make_status(IREE_STATUS_INTERNAL, + "unsupported fill pattern length"); + break; + } } - return iree_ok_status(); + + IREE_ROCM_TRACE_ZONE_END(command_buffer->tracing_context, 0); + return status; } static iree_status_t iree_hal_rocm_direct_command_buffer_update_buffer( @@ -272,6 +306,8 @@ iree_hal_rocm_direct_command_buffer_t* command_buffer = iree_hal_rocm_direct_command_buffer_cast(base_command_buffer); + IREE_ROCM_TRACE_ZONE_BEGIN(command_buffer->tracing_context, 0); + hipDeviceptr_t target_device_buffer = iree_hal_rocm_buffer_device_pointer( iree_hal_buffer_allocated_buffer(target_buffer)); target_offset += iree_hal_buffer_byte_offset(target_buffer); @@ -284,11 +320,13 @@ (hipDeviceptr_t)((uintptr_t)source_device_buffer + source_offset); // TODO(raikonenfnu): Currently using NULL stream, need to figure out way to // access proper stream from command buffer - ROCM_RETURN_IF_ERROR( + iree_status_t status = ROCM_RESULT_TO_STATUS( command_buffer->context->syms, hipMemcpyAsync(dst, src, length, hipMemcpyDeviceToDevice, 0), "hipMemcpyAsync"); - return iree_ok_status(); + + IREE_ROCM_TRACE_ZONE_END(command_buffer->tracing_context, 0); + return status; } static iree_status_t iree_hal_rocm_direct_command_buffer_collective(