Skip to content

Commit c0488d2

Browse files
committed
remove #ifdef for debug utils and add queue marker.
1 parent a309eef commit c0488d2

File tree

2 files changed

+24
-21
lines changed

2 files changed

+24
-21
lines changed

ggml/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,6 @@ option(GGML_VULKAN_CHECK_RESULTS "ggml: run Vulkan op checks"
178178
option(GGML_VULKAN_DEBUG "ggml: enable Vulkan debug output" OFF)
179179
option(GGML_VULKAN_MEMORY_DEBUG "ggml: enable Vulkan memory debug output" OFF)
180180
option(GGML_VULKAN_SHADER_DEBUG_INFO "ggml: enable Vulkan shader debug info" OFF)
181-
option(GGML_VULKAN_DEBUG_UTILS "ggml: VK_EXT_debug_utils debug information" OFF)
182181
option(GGML_VULKAN_VALIDATE "ggml: enable Vulkan validation" OFF)
183182
option(GGML_VULKAN_RUN_TESTS "ggml: run Vulkan tests" OFF)
184183
option(GGML_KOMPUTE "ggml: use Kompute" OFF)

ggml/src/ggml-vulkan/ggml-vulkan.cpp

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1041,10 +1041,13 @@ void vk_memory_logger::log_deallocation(vk_buffer_ref buf_ref) {
10411041
struct vk_instance_t {
10421042
vk::Instance instance;
10431043

1044-
#ifdef GGML_VULKAN_DEBUG_UTILS
10451044
bool debug_utils_support = false; // VK_EXT_debug_utils enabled
1046-
PFN_vkSetDebugUtilsObjectNameEXT pfnSetDebugUtilsObjectNameEXT = {};
1047-
#endif
1045+
PFN_vkSetDebugUtilsObjectNameEXT pfn_vkSetDebugUtilsObjectNameEXT = {};
1046+
PFN_vkQueueBeginDebugUtilsLabelEXT pfn_vkQueueBeginDebugUtilsLabelEXT = {};
1047+
PFN_vkQueueEndDebugUtilsLabelEXT pfn_vkQueueEndDebugUtilsLabelEXT = {};
1048+
PFN_vkCmdBeginDebugUtilsLabelEXT pfn_vkCmdBeginDebugUtilsLabelEXT = {};
1049+
PFN_vkCmdEndDebugUtilsLabelEXT pfn_vkCmdEndDebugUtilsLabelEXT = {};
1050+
PFN_vkCmdInsertDebugUtilsLabelEXT pfn_vkCmdInsertDebugUtilsLabelEXT = {};
10481051

10491052
std::vector<size_t> device_indices;
10501053
vk_device devices[GGML_VK_MAX_DEVICES];
@@ -1185,15 +1188,13 @@ static void ggml_vk_create_pipeline_func(vk_device& device, vk_pipeline& pipelin
11851188
}
11861189
pipeline->compiled = true;
11871190

1188-
#ifdef GGML_VULKAN_DEBUG_UTILS
11891191
if (vk_instance.debug_utils_support) {
11901192
vk::DebugUtilsObjectNameInfoEXT duoni;
11911193
duoni.objectType = vk::ObjectType::ePipeline;
11921194
duoni.pObjectName = pipeline->name.c_str();
1193-
duoni.objectHandle = reinterpret_cast<uint64_t>(pipeline->pipeline.operator VkPipeline_T *());
1194-
vk_instance.pfnSetDebugUtilsObjectNameEXT(device->device, &static_cast<VkDebugUtilsObjectNameInfoEXT &>(duoni));
1195+
duoni.objectHandle = reinterpret_cast<uint64_t>(static_cast<VkPipeline_T*>(pipeline->pipeline));
1196+
vk_instance.pfn_vkSetDebugUtilsObjectNameEXT(device->device, &static_cast<VkDebugUtilsObjectNameInfoEXT &>(duoni));
11951197
}
1196-
#endif
11971198

11981199
{
11991200
std::lock_guard<std::mutex> guard(device->mutex);
@@ -3576,9 +3577,7 @@ static void ggml_vk_print_gpu_info(size_t idx) {
35763577
static bool ggml_vk_instance_validation_ext_available(const std::vector<vk::ExtensionProperties>& instance_extensions);
35773578
static bool ggml_vk_instance_portability_enumeration_ext_available(const std::vector<vk::ExtensionProperties>& instance_extensions);
35783579

3579-
#ifdef GGML_VULKAN_DEBUG_UTILS
35803580
static bool ggml_vk_instance_debug_utils_ext_available(const std::vector<vk::ExtensionProperties> & instance_extensions);
3581-
#endif
35823581

35833582
static void ggml_vk_instance_init() {
35843583
if (vk_instance_initialized) {
@@ -3600,9 +3599,7 @@ static void ggml_vk_instance_init() {
36003599
#ifdef __APPLE__
36013600
const bool portability_enumeration_ext = ggml_vk_instance_portability_enumeration_ext_available(instance_extensions);
36023601
#endif
3603-
#ifdef GGML_VULKAN_DEBUG_UTILS
3604-
const bool debug_utils_ext = ggml_vk_instance_debug_utils_ext_available(instance_extensions);
3605-
#endif
3602+
const bool debug_utils_ext = ggml_vk_instance_debug_utils_ext_available(instance_extensions) && getenv("GGML_VK_DEBUG_MARKERS") != nullptr;
36063603
std::vector<const char*> layers;
36073604

36083605
if (validation_ext) {
@@ -3617,11 +3614,9 @@ static void ggml_vk_instance_init() {
36173614
extensions.push_back("VK_KHR_portability_enumeration");
36183615
}
36193616
#endif
3620-
#ifdef GGML_VULKAN_DEBUG_UTILS
36213617
if (debug_utils_ext) {
36223618
extensions.push_back("VK_EXT_debug_utils");
36233619
}
3624-
#endif
36253620
vk::InstanceCreateInfo instance_create_info(vk::InstanceCreateFlags{}, &app_info, layers, extensions);
36263621
#ifdef __APPLE__
36273622
if (portability_enumeration_ext) {
@@ -3645,12 +3640,16 @@ static void ggml_vk_instance_init() {
36453640
vk_instance.instance = vk::createInstance(instance_create_info);
36463641
vk_instance_initialized = true;
36473642

3648-
#ifdef GGML_VULKAN_DEBUG_UTILS
36493643
if (debug_utils_ext) {
3650-
vk_instance.pfnSetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT) vkGetInstanceProcAddr(vk_instance.instance, "vkSetDebugUtilsObjectNameEXT");
3651-
vk_instance.debug_utils_support = vk_instance.pfnSetDebugUtilsObjectNameEXT != nullptr;
3644+
vk_instance.debug_utils_support = true;
3645+
vk_instance.pfn_vkSetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT) vkGetInstanceProcAddr(vk_instance.instance, "vkSetDebugUtilsObjectNameEXT");
3646+
vk_instance.pfn_vkQueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT) vkGetInstanceProcAddr(vk_instance.instance, "vkQueueBeginDebugUtilsLabelEXT");
3647+
vk_instance.pfn_vkQueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT) vkGetInstanceProcAddr(vk_instance.instance, "vkQueueEndDebugUtilsLabelEXT");
3648+
vk_instance.pfn_vkCmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT) vkGetInstanceProcAddr(vk_instance.instance, "vkCmdBeginDebugUtilsLabelEXT");
3649+
vk_instance.pfn_vkCmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT) vkGetInstanceProcAddr(vk_instance.instance, "vkCmdEndDebugUtilsLabelEXT");
3650+
vk_instance.pfn_vkCmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT) vkGetInstanceProcAddr(vk_instance.instance, "vkCmdInsertDebugUtilsLabelEXT");
3651+
36523652
}
3653-
#endif
36543653

36553654
size_t num_available_devices = vk_instance.instance.enumeratePhysicalDevices().size();
36563655
vk_perf_logger_enabled = getenv("GGML_VK_PERF_LOGGER") != nullptr;
@@ -9684,6 +9683,13 @@ static ggml_status ggml_backend_vk_graph_compute(ggml_backend_t backend, ggml_cg
96849683
VK_LOG_DEBUG("ggml_backend_vk_graph_compute(" << cgraph->n_nodes << " nodes)");
96859684
ggml_backend_vk_context * ctx = (ggml_backend_vk_context *)backend->context;
96869685

9686+
if (vk_instance.debug_utils_support) {
9687+
vk::DebugUtilsLabelEXT dul = {};
9688+
dul.pLabelName = "ggml_backend_vk_graph_compute";
9689+
dul.color = std::array<float,4>{1.0f, 1.0f, 1.0f, 1.0f};
9690+
vk_instance.pfn_vkQueueBeginDebugUtilsLabelEXT(ctx->device->compute_queue.queue, reinterpret_cast<VkDebugUtilsLabelEXT*>(&dul));
9691+
}
9692+
96879693
uint64_t total_mat_mul_bytes = 0;
96889694
for (int i = 0; i < cgraph->n_nodes; i++) {
96899695
ggml_vk_build_graph(ctx, cgraph->nodes[i], i, nullptr, 0, true, false, false, false);
@@ -10373,7 +10379,6 @@ static bool ggml_vk_instance_portability_enumeration_ext_available(const std::ve
1037310379
UNUSED(instance_extensions);
1037410380
}
1037510381

10376-
#ifdef GGML_VULKAN_DEBUG_UTILS
1037710382
// Extension availability
1037810383
static bool ggml_vk_instance_debug_utils_ext_available(
1037910384
const std::vector<vk::ExtensionProperties> & instance_extensions) {
@@ -10389,7 +10394,6 @@ static bool ggml_vk_instance_debug_utils_ext_available(
1038910394

1039010395
UNUSED(instance_extensions);
1039110396
}
10392-
#endif
1039310397

1039410398
static bool ggml_vk_khr_cooperative_matrix_support(const vk::PhysicalDeviceProperties& props, const vk::PhysicalDeviceDriverProperties& driver_props, vk_device_architecture arch) {
1039510399
switch (props.vendorID) {

0 commit comments

Comments
 (0)