Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,11 @@ types are additive.

### Changed

- **The agent that `gpufl trace --upload` and `gpufl upload` start also tails
the `serving` channel** (default log types `device,scope,system,sass,serving`).
It carries the records the Python serving writer emits into its own session
directories; without it those sessions were never uploaded by a
launcher-started agent. A channel with no windows is a no-op.
- **`--passes` and `--deep-*` are separate execution modes and cannot be
combined.** The reason is a hardware constraint rather than a style choice:
`cuptiProfilerInitialize` has to run before any CUDA context exists, so the
Expand Down
2 changes: 1 addition & 1 deletion daemon/launcher/cli_parse.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ struct TraceArgs {
std::string api_version = "v1"; // --api-version
std::string agent_jar; // --agent-jar; else GPUFL_AGENT_JAR
std::string agent_cursor; // --agent-cursor; default <output>/cursor.json
std::string log_types = "device,scope,system,sass"; // --log-types (sass carries cubin disassembly + source artifacts)
std::string log_types = "device,scope,system,sass,serving"; // --log-types (sass carries cubin disassembly + source artifacts; serving the LLM-serving records)
int agent_drain_ms = 60000; // --agent-drain-ms: cap on waiting for the agent to finish uploading
// Bounded window profiling (`gpufl trace` only): bound a capture of a
// long-running target that never exits on its own. warmup defers the
Expand Down
2 changes: 1 addition & 1 deletion daemon/launcher/cli_trace_options.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -516,7 +516,7 @@ const CliOptionManager<TraceArgs>& traceOptions() {
kSection(TraceHelpSection::Runtime),
&parseNonEmptyStringOption<&TraceArgs::agent_cursor>)
.add({"--log-types"}, "<LIST>",
"Agent channels to upload (default: device,scope,system,sass)",
"Agent channels to upload (default: device,scope,system,sass,serving)",
kSection(TraceHelpSection::Runtime),
&parseNonEmptyStringOption<&TraceArgs::log_types>)
.add({"--agent-drain-ms"}, "<MS>",
Expand Down
2 changes: 1 addition & 1 deletion daemon/launcher/upload_command.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ int runUpload(const UploadArgs& args) {

AgentOptions agent_opts;
agent_opts.source_folders = args.log_path;
agent_opts.log_types = "device,scope,system,sass";
agent_opts.log_types = "device,scope,system,sass,serving";
agent_opts.backend_url = backend_url;
agent_opts.api_key = api_key;
agent_opts.api_version = apiVersionFrom(resolve(args.api_path, gpufl::env::kApiPath));
Expand Down
2 changes: 1 addition & 1 deletion tests/launcher/test_cli_parse.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -398,7 +398,7 @@ TEST(CliParseTrace, UploadFlag) {
ASSERT_TRUE(r.args.has_value()) << r.error;
EXPECT_TRUE(r.args->upload);
EXPECT_EQ(r.args->api_version, "v1");
EXPECT_EQ(r.args->log_types, "device,scope,system,sass");
EXPECT_EQ(r.args->log_types, "device,scope,system,sass,serving");
EXPECT_EQ(r.args->agent_drain_ms, 60000);
}

Expand Down
Loading