Skip to content
Open
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
15 changes: 9 additions & 6 deletions plugins/tenstorrent/tt_command.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -71,15 +71,18 @@ nxs_status TTCommand::runCommand(nxs_int stream, ttmd::MeshWorkload &workload,
int persistent_grid_stride = std::max(1, total_grid_size / (int)cores.size());
NXSAPI_LOG(nexus::NXS_LOG_NOTE, "Total grid size: ", total_grid_size, ", cores: ", cores.size(), ", persistent grid stride: ", persistent_grid_stride);

library->setupCommonRuntime(program, rt_args);

// set params
int persistent_grid_idx = 0;
for (const auto& core : cores) {
rt_args[numArgs] = persistent_grid_idx * persistent_grid_stride;
rt_args[numArgs+1] = persistent_grid_idx * persistent_grid_stride + persistent_grid_stride;
if (rt_args[numArgs+1] > total_grid_size)
rt_args[numArgs+1] = total_grid_size;
NXSAPI_LOG(nexus::NXS_LOG_NOTE, "Launch params: grid_idx=", persistent_grid_idx, ", start=", rt_args[numArgs], ", end=", rt_args[numArgs+1]);
library->setupCoreRuntime(program, core, rt_args);
TTLibrary::RunTimeArgs core_rt_args;
core_rt_args[0] = persistent_grid_idx * persistent_grid_stride;
core_rt_args[1] = persistent_grid_idx * persistent_grid_stride + persistent_grid_stride;
if (core_rt_args[1] > total_grid_size)
core_rt_args[1] = total_grid_size;
NXSAPI_LOG(nexus::NXS_LOG_NOTE, "Launch params: grid_idx=", persistent_grid_idx, ", start=", core_rt_args[0], ", end=", core_rt_args[1]);
library->setupCoreRuntime(program, core, core_rt_args);
persistent_grid_idx++;
}

Expand Down
6 changes: 6 additions & 0 deletions plugins/tenstorrent/tt_library.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@ void TTLibrary::jitProgram(ttm::Program &program, const ttm::CoreRange &cores, c
ttm::ComputeConfig{.math_fidelity = MathFidelity::HiFi4, .compile_args = compile_time_args});
}

void TTLibrary::setupCommonRuntime(ttm::Program &program, const RunTimeArgs &run_time_args) {
TT_CHECK(ttm::SetCommonRuntimeArgs, program, reader_kernel, run_time_args);
TT_CHECK(ttm::SetCommonRuntimeArgs, program, writer_kernel, run_time_args);
TT_CHECK(ttm::SetCommonRuntimeArgs, program, compute_kernel, run_time_args);
}

void TTLibrary::setupCoreRuntime(ttm::Program &program, const ttm::CoreCoord &core, const RunTimeArgs &run_time_args) {
TT_CHECK(ttm::SetRuntimeArgs, program, reader_kernel, core, run_time_args);
TT_CHECK(ttm::SetRuntimeArgs, program, writer_kernel, core, run_time_args);
Expand Down
1 change: 1 addition & 0 deletions plugins/tenstorrent/tt_library.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ class TTLibrary {
typedef std::array<uint32_t, NXS_KERNEL_MAX_ARGS> RunTimeArgs;

void jitProgram(ttm::Program &program, const ttm::CoreRange &cores, const CompileTimeArgs &compile_time_args);
void setupCommonRuntime(ttm::Program &program, const RunTimeArgs &run_time_args);
void setupCoreRuntime(ttm::Program &program, const ttm::CoreCoord &core, const RunTimeArgs &run_time_args);
};

Expand Down
Loading