fix(neuron): gate TP MoE load tests to non-cuda builds (#92)
All checks were successful
CI / Format (push) Successful in 8s
CI / CUDA type-check (push) Successful in 1m41s
CI / Clippy (push) Successful in 2m16s
CI / Test (push) Successful in 5m58s
CI / Build cortex SRPM (push) Has been skipped
CI / Build neuron SRPM (push) Has been skipped
CI / Publish cortex to COPR (push) Has been skipped
CI / Publish neuron to COPR (push) Has been skipped
CI / Bump version in source (push) Has been skipped
CI / Format (pull_request) Successful in 15s
CI / CUDA type-check (pull_request) Successful in 1m37s
CI / Clippy (pull_request) Successful in 2m22s
CI / Test (pull_request) Successful in 9m35s
CI / Build cortex SRPM (pull_request) Has been skipped
CI / Publish cortex to COPR (pull_request) Has been skipped
CI / Build neuron SRPM (pull_request) Has been skipped
CI / Publish neuron to COPR (pull_request) Has been skipped
CI / Bump version in source (pull_request) Has been skipped
All checks were successful
CI / Format (push) Successful in 8s
CI / CUDA type-check (push) Successful in 1m41s
CI / Clippy (push) Successful in 2m16s
CI / Test (push) Successful in 5m58s
CI / Build cortex SRPM (push) Has been skipped
CI / Build neuron SRPM (push) Has been skipped
CI / Publish cortex to COPR (push) Has been skipped
CI / Publish neuron to COPR (push) Has been skipped
CI / Bump version in source (push) Has been skipped
CI / Format (pull_request) Successful in 15s
CI / CUDA type-check (pull_request) Successful in 1m37s
CI / Clippy (pull_request) Successful in 2m22s
CI / Test (pull_request) Successful in 9m35s
CI / Build cortex SRPM (pull_request) Has been skipped
CI / Publish cortex to COPR (pull_request) Has been skipped
CI / Build neuron SRPM (pull_request) Has been skipped
CI / Publish neuron to COPR (pull_request) Has been skipped
CI / Bump version in source (pull_request) Has been skipped
The CUDA type-check compiles test targets too, where TpQwen3_5MoeBlock::load takes an NCCL Comm the tests cannot construct (E0061). The CPU Test job runs the partial-sum parity test; the CUDA job type-checks the cuda load/reduce variants. Also drops an unused binding only the cuda test build flagged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TczcGF7JSjJs8r15RSSGpx
This commit is contained in:
@@ -2027,11 +2027,17 @@ fn log_construction_complete(
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
#[cfg(not(feature = "cuda"))]
|
||||
use crate::harness::arch::qwen3_5::moe::Qwen3_5MoeBlock;
|
||||
#[cfg(not(feature = "cuda"))]
|
||||
use std::collections::HashMap;
|
||||
|
||||
/// Write a tiny MoE-block checkpoint (router + experts + shared
|
||||
/// expert) and return a ShardedVarBuilder over it plus the config.
|
||||
/// Non-cuda only: the cuda `TpQwen3_5MoeBlock::load` takes an NCCL
|
||||
/// `Comm`, which tests cannot construct — the CPU Test job covers
|
||||
/// this; the CUDA job type-checks the cuda variants.
|
||||
#[cfg(not(feature = "cuda"))]
|
||||
fn tiny_moe_fixture(dir: &std::path::Path) -> (TextConfig, std::path::PathBuf) {
|
||||
let dev = Device::Cpu;
|
||||
let randn = |shape: &[usize]| Tensor::randn(0f32, 0.3f32, shape, &dev).unwrap();
|
||||
@@ -2090,6 +2096,7 @@ mod tests {
|
||||
(cfg, path)
|
||||
}
|
||||
|
||||
#[cfg(not(feature = "cuda"))]
|
||||
fn vb_over(path: &std::path::Path) -> ShardedVarBuilder {
|
||||
// SAFETY: mmap of a file the test just wrote; nothing mutates it.
|
||||
unsafe {
|
||||
@@ -2108,6 +2115,7 @@ mod tests {
|
||||
/// pins the expert slicing (column gate/up, row down), the
|
||||
/// replicated routing, and the shared-expert partial scaling,
|
||||
/// i.e. everything the real AllReduce would combine.
|
||||
#[cfg(not(feature = "cuda"))]
|
||||
#[test]
|
||||
fn tp_moe_ws2_partials_sum_to_single_gpu_output() {
|
||||
let dir = tempfile::tempdir().expect("tempdir");
|
||||
@@ -2154,7 +2162,7 @@ mod tests {
|
||||
|
||||
let (full_qkv, full_z) = split_fused_qkvz(&fused, num_k, num_v, head_k, head_v).unwrap();
|
||||
let (full_b, full_a) = split_fused_ba(&ba, num_k, num_v).unwrap();
|
||||
let (key_dim, value_dim) = (num_k * head_k, num_v * head_v);
|
||||
let key_dim = num_k * head_k;
|
||||
|
||||
let ws = 2usize;
|
||||
for rank in 0..ws {
|
||||
|
||||
Reference in New Issue
Block a user