@@ -359,11 +359,58 @@ cc_library(
359359 ],
360360)
361361
362+ config_setting (
363+ name = "use_v1" ,
364+ values = {"define" : "xla_rocm_profiler=v1" },
365+ )
366+
367+ config_setting (
368+ name = "use_rocprofiler_sdk" ,
369+ values = {"define" : "xla_rocm_profiler=v3" },
370+ )
371+
372+ cc_library (
373+ name = "rocm_profiler_backend_cfg" ,
374+ defines = select ({
375+ ":use_v1" : ["XLA_GPU_ROCM_TRACER_BACKEND=1" ],
376+ ":use_rocprofiler_sdk" : ["XLA_GPU_ROCM_TRACER_BACKEND=3" ],
377+ "//conditions:default" : ["XLA_GPU_ROCM_TRACER_BACKEND=3" ],
378+ }),
379+ visibility = ["//visibility:public" ],
380+ )
381+
382+ cc_library (
383+ name = "rocm_tracer_utils" ,
384+ srcs = ["rocm_tracer_utils.cc" ],
385+ hdrs = ["rocm_tracer_utils.h" ],
386+ tags = [
387+ "gpu" ,
388+ "manual" ,
389+ "rocm-only" ,
390+ ],
391+ deps = [
392+ "//xla/tsl/profiler/backends/cpu:annotation_stack" ,
393+ "//xla/tsl/profiler/utils:time_utils" ,
394+ "//xla/tsl/profiler/utils:math_utils" ,
395+ "@com_google_absl//absl/strings:string_view" ,
396+ "@com_google_absl//absl/container:flat_hash_map" ,
397+ "@com_google_absl//absl/container:flat_hash_set" ,
398+ "@com_google_absl//absl/container:node_hash_map" ,
399+ "@com_google_absl//absl/container:node_hash_set" ,
400+ "@tsl//tsl/platform:env_time" ,
401+ "@tsl//tsl/platform:env" ,
402+ "@tsl//tsl/platform:errors" ,
403+ "@tsl//tsl/platform:logging" ,
404+ "@tsl//tsl/platform:macros" ,
405+ "@local_config_rocm//rocm:rocprofiler-sdk" ,
406+ ],
407+ visibility = ["//visibility:public" ],
408+ )
409+
362410cc_library (
363411 name = "rocm_collector" ,
364412 srcs = ["rocm_collector.cc" ],
365413 hdrs = ["rocm_collector.h" ],
366- # copybara:uncomment compatible_with = ["//buildenv/target:non_prod"],
367414 tags = [
368415 "gpu" ,
369416 "rocm-only" ,
@@ -372,6 +419,8 @@ cc_library(
372419 "manual" ,
373420 ]),
374421 deps = [
422+ ":rocm_tracer_utils" ,
423+ ":rocm_profiler_backend_cfg" ,
375424 "//xla/stream_executor/rocm:roctracer_wrapper" ,
376425 "//xla/tsl/profiler/backends/cpu:annotation_stack" ,
377426 "//xla/tsl/profiler/utils:parse_annotation" ,
@@ -396,26 +445,53 @@ cc_library(
396445 "@tsl//tsl/platform:types" ,
397446 "@tsl//tsl/profiler/lib:profiler_factory" ,
398447 "@tsl//tsl/profiler/lib:profiler_interface" ,
448+ "@local_config_rocm//rocm:rocprofiler-sdk" ,
399449 ],
400450)
401451
402452cc_library (
403- name = "rocm_tracer" ,
404- srcs = ["rocm_tracer.cc" ],
405- hdrs = ["rocm_tracer.h" ],
406- # copybara:uncomment compatible_with = ["//buildenv/target:non_prod"],
453+ name = "rocm_tracer_headers" ,
454+ hdrs = [
455+ "rocm_tracer.h" ,
456+ "rocm_profiler_sdk.h" ,
457+ "rocm_tracer_v1.h" ,
458+ ],
407459 tags = [
408460 "gpu" ,
461+ "manual" ,
409462 "rocm-only" ,
410- ] + if_google ([
411- # TODO(b/360374983): Remove this tag once the target can be built without --config=rocm.
463+ ],
464+ # PROPAGATE the layout macro to every dependent TU:
465+ defines = select ({
466+ ":use_v1" : ["XLA_GPU_ROCM_TRACER_BACKEND=1" ],
467+ ":use_rocprofiler_sdk" : ["XLA_GPU_ROCM_TRACER_BACKEND=3" ],
468+ "//conditions:default" : ["XLA_GPU_ROCM_TRACER_BACKEND=3" ],
469+ }),
470+ visibility = ["//visibility:public" ],
471+ )
472+
473+ cc_library (
474+ name = "rocm_tracer_impl" ,
475+ srcs = select ({
476+ ":use_v1" : ["rocm_tracer_v1.cc" ],
477+ ":use_rocprofiler_sdk" : ["rocm_profiler_sdk.cc" ],
478+ "//conditions:default" : ["rocm_profiler_sdk.cc" ],
479+ }),
480+ tags = [
481+ "gpu" ,
412482 "manual" ,
413- ]),
483+ "rocm-only" ,
484+ ],
414485 deps = [
486+ ":rocm_tracer_headers" ,
415487 ":rocm_collector" ,
416488 "//xla/stream_executor/rocm:roctracer_wrapper" ,
417489 "//xla/tsl/profiler/backends/cpu:annotation_stack" ,
418490 "//xla/tsl/profiler/utils:time_utils" ,
491+ "//xla/tsl/profiler/utils:xplane_builder" ,
492+ "//xla/tsl/profiler/utils:xplane_schema" ,
493+ "//xla/tsl/profiler/utils:xplane_utils" ,
494+ "//xla/tsl/util:env_var" ,
419495 "@com_google_absl//absl/container:fixed_array" ,
420496 "@com_google_absl//absl/container:flat_hash_map" ,
421497 "@com_google_absl//absl/container:flat_hash_set" ,
@@ -432,9 +508,74 @@ cc_library(
432508 "@tsl//tsl/platform:status" ,
433509 "@tsl//tsl/platform:thread_annotations" ,
434510 "@tsl//tsl/platform:types" ,
511+ "@tsl//tsl/profiler/lib:profiler_factory" ,
512+ "@tsl//tsl/profiler/lib:profiler_interface" ,
513+ ],
514+ )
515+
516+ cc_library (
517+ name = "rocm_tracer" ,
518+ tags = [
519+ "gpu" ,
520+ "manual" ,
521+ "rocm-only" ,
522+ ],
523+ deps = [":rocm_tracer_headers" , ":rocm_tracer_impl" ],
524+ visibility = ["//visibility:public" ],
525+ )
526+
527+ # upstream it's called xla_cc_test as no GPU involved.
528+ xla_test (
529+ name = "rocm_tracer_test" ,
530+ size = "small" ,
531+ srcs = ["rocm_tracer_test.cc" ],
532+ tags = [
533+ "gpu" ,
534+ "rocm-only" ,
535+ "skip_rocprofiler_sdk" , # due to rocprofiler-sdk's rocprofiler_force_configure
536+ ] + if_google ([
537+ # Optional: only run internally if ROCm config is enabled
538+ "manual" ,
539+ ]),
540+ deps = [
541+ ":rocm_tracer" ,
542+ ":rocm_tracer_utils" ,
543+ "//xla/tsl/profiler/utils:xplane_builder" ,
544+ "@com_google_absl//absl/container:flat_hash_map" ,
545+ "@com_google_googletest//:gtest_main" ,
546+ "@tsl//tsl/platform:status_matchers" ,
547+ "@tsl//tsl/platform:test" ,
548+ "@tsl//tsl/profiler/protobuf:xplane_proto_cc" ,
435549 ],
436550)
437551
552+ xla_test (
553+ name = "rocm_collector_test" ,
554+ size = "small" ,
555+ srcs = ["rocm_collector_test.cc" ],
556+ tags = [
557+ "gpu" ,
558+ "rocm-only" ,
559+ ] + if_google ([
560+ "manual" ,
561+ ]),
562+ deps = [
563+ ":rocm_collector" ,
564+ ":rocm_tracer_utils" ,
565+ "//xla/tsl/profiler/utils:xplane_builder" ,
566+ "@com_google_absl//absl/container:flat_hash_map" ,
567+ "@com_google_googletest//:gtest_main" ,
568+ "@tsl//tsl/platform:env_time" ,
569+ "@tsl//tsl/platform:status_matchers" ,
570+ "@tsl//tsl/platform:test" ,
571+ "@tsl//tsl/profiler/protobuf:xplane_proto_cc" ,
572+ "@tsl//tsl/platform:env" ,
573+ "@tsl//tsl/platform:errors" ,
574+ "@tsl//tsl/platform:logging" ,
575+ "@tsl//tsl/platform:macros" ,
576+ ],
577+ )
578+
438579cc_library (
439580 name = "nvtx_utils" ,
440581 srcs = ["nvtx_utils.cc" ],
0 commit comments