[plugin] oot torch profiler activity support (#31580)
Signed-off-by: Devashish Lal <devcode@fb.com> Co-authored-by: Devashish Lal <devcode@fb.com>
This commit is contained in:
co-authored by
Devashish Lal
parent
a5c0b94034
commit
ab3d421c30
@@ -18,6 +18,7 @@ import torch
|
|||||||
from sglang.srt.environ import envs
|
from sglang.srt.environ import envs
|
||||||
from sglang.srt.managers.io_struct import ProfileReq, ProfileReqOutput, ProfileReqType
|
from sglang.srt.managers.io_struct import ProfileReq, ProfileReqOutput, ProfileReqType
|
||||||
from sglang.srt.model_executor.forward_batch_info import ForwardMode
|
from sglang.srt.model_executor.forward_batch_info import ForwardMode
|
||||||
|
from sglang.srt.platforms import current_platform
|
||||||
from sglang.srt.runtime_context import get_server_args
|
from sglang.srt.runtime_context import get_server_args
|
||||||
from sglang.srt.utils import is_mps, is_npu
|
from sglang.srt.utils import is_mps, is_npu
|
||||||
from sglang.srt.utils.profile_merger import ProfileMerger
|
from sglang.srt.utils.profile_merger import ProfileMerger
|
||||||
@@ -170,6 +171,15 @@ class SchedulerProfilerManager:
|
|||||||
"CPU": torch.profiler.ProfilerActivity.CPU,
|
"CPU": torch.profiler.ProfilerActivity.CPU,
|
||||||
"GPU": torch.profiler.ProfilerActivity.CUDA,
|
"GPU": torch.profiler.ProfilerActivity.CUDA,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if current_platform.is_out_of_tree():
|
||||||
|
if hasattr(
|
||||||
|
torch.profiler.ProfilerActivity,
|
||||||
|
current_platform.get_torch_profiler_activity_str(),
|
||||||
|
):
|
||||||
|
activity_map[current_platform.get_torch_profiler_activity_str()] = (
|
||||||
|
current_platform.get_torch_profiler_activity()
|
||||||
|
)
|
||||||
if hasattr(torch.profiler.ProfilerActivity, "XPU"):
|
if hasattr(torch.profiler.ProfilerActivity, "XPU"):
|
||||||
activity_map["XPU"] = torch.profiler.ProfilerActivity.XPU
|
activity_map["XPU"] = torch.profiler.ProfilerActivity.XPU
|
||||||
torchprof_activities = [
|
torchprof_activities = [
|
||||||
|
|||||||
@@ -251,6 +251,14 @@ class DeviceMixin:
|
|||||||
return CpuArchEnum.ARM
|
return CpuArchEnum.ARM
|
||||||
return CpuArchEnum.UNSPECIFIED
|
return CpuArchEnum.UNSPECIFIED
|
||||||
|
|
||||||
|
def get_torch_profiler_activity_str(self) -> str:
|
||||||
|
"""[Planned] Return the torch profiler activity string."""
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
|
def get_torch_profiler_activity(self) -> torch.profiler.ProfilerActivity:
|
||||||
|
"""[Planned] Return the torch profiler activity."""
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
# Dunder helpers
|
# Dunder helpers
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ from sglang.srt.distributed.parallel_state_wrapper import ParallelState
|
|||||||
from sglang.srt.environ import envs
|
from sglang.srt.environ import envs
|
||||||
from sglang.srt.managers.io_struct import ProfileReqOutput
|
from sglang.srt.managers.io_struct import ProfileReqOutput
|
||||||
from sglang.srt.model_executor.forward_batch_info import ForwardBatch, ForwardMode
|
from sglang.srt.model_executor.forward_batch_info import ForwardBatch, ForwardMode
|
||||||
|
from sglang.srt.platforms import current_platform
|
||||||
from sglang.srt.runtime_context import get_server_args
|
from sglang.srt.runtime_context import get_server_args
|
||||||
from sglang.srt.utils import is_npu
|
from sglang.srt.utils import is_npu
|
||||||
from sglang.srt.utils.torch_npu_patch_utils import apply_torch_npu_patches
|
from sglang.srt.utils.torch_npu_patch_utils import apply_torch_npu_patches
|
||||||
@@ -221,6 +222,16 @@ class _ProfilerBase(ABC):
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def create(activities, with_stack, record_shapes, **kwargs):
|
def create(activities, with_stack, record_shapes, **kwargs):
|
||||||
inners = []
|
inners = []
|
||||||
|
if current_platform.is_out_of_tree():
|
||||||
|
if current_platform.get_torch_profiler_activity_str() in activities:
|
||||||
|
inners.append(
|
||||||
|
_ProfilerTorch(
|
||||||
|
**kwargs,
|
||||||
|
activities=activities,
|
||||||
|
with_stack=with_stack,
|
||||||
|
record_shapes=record_shapes,
|
||||||
|
)
|
||||||
|
)
|
||||||
if ("CPU" in activities) or ("GPU" in activities):
|
if ("CPU" in activities) or ("GPU" in activities):
|
||||||
inners.append(
|
inners.append(
|
||||||
_ProfilerTorch(
|
_ProfilerTorch(
|
||||||
@@ -291,6 +302,12 @@ class _ProfilerTorch(_ProfilerConcreteBase):
|
|||||||
"CPU": torch.profiler.ProfilerActivity.CPU,
|
"CPU": torch.profiler.ProfilerActivity.CPU,
|
||||||
"GPU": torch.profiler.ProfilerActivity.CUDA,
|
"GPU": torch.profiler.ProfilerActivity.CUDA,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if current_platform.is_out_of_tree():
|
||||||
|
activity_map[current_platform.get_torch_profiler_activity_str()] = (
|
||||||
|
current_platform.get_torch_profiler_activity()
|
||||||
|
)
|
||||||
|
|
||||||
torchprof_activities = [
|
torchprof_activities = [
|
||||||
activity_map[a] for a in self.activities if a in activity_map
|
activity_map[a] for a in self.activities if a in activity_map
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user