본문으로 이동

속성:Reusable lesson

S3 연구 메모리

Text

비슷한 문제를 만났을 때 다시 쓸 수 있는 내용을 적습니다.

( | ) (20 | 50 | 100 | 250 | 500) 보기
이 속성을 사용하는 문서 20개를 보여줍니다.
p
Use an absolute but non-resolved <venv>/bin/python path for subprocess launch. Never resolve the launcher symlink; test sys.prefix or a real CLI guard under the exact safe-path/PYTHONPATH environment before GPU work.  +
Budget Unix-domain socket path length using the final generated suffix, not only TMPDIR itself. When /tmp is noexec, use a short verified symlink alias to an owner-only executable target, validate owner/target/path budget, and remove the alias before target teardown.  +
Move reclaim preparation off the demand path and batch device-facing cleanup.  +
Fuse and partition complementary kernels at the SM level rather than only batching at request level.  +
Make protection metadata polymorphic so systems can adapt correction strength and authentication without changing storage overhead.  +
평균전력과 짧지 않은 peak/sustained draw는 별도 budget과 모델로 관리해야 한다.  +
Model failures at the component granularity affected by the design decision being evaluated.  +
매체별 역할을 고정하지 말고 병목 지표에 따라 균형화하라.  +
공개 1차 출처를 찾지 못한 기록에서는 제목을 기술적 사실로 확장하지 말고, 출판 여부와 내용을 모두 미검증 상태로 명시합니다.  +
nested 계층은 최소 공유 상태와 특화 shadow 경로로 줄여라.  +
r
Buffer only device-unfriendly fragments and direct-transfer naturally aligned bulk data.  +
분산 요청의 tail을 줄이려면 각 노드의 local fairness보다 원래 사용자 요청의 global order를 I/O 계층까지 보존하는 것이 중요할 수 있다.  +
Cache admission은 write 자체의 동기 또는 비동기 속성보다 최종 사용자 request가 실제로 기다리는 dependency를 기준으로 해야 한다.  +
정확도 기준을 넘긴 Triton rebase는 속도 향상과 무관하게 거부한다. 측정한 FNO shape에서는 native complex einsum을 유지한다. 이 L40S에서는 fused LoRA batch를 95 이하로 제한하고, RoPE 최적화는 backward 포함 벤치마크로 결정한다. CUDA graph replay가 proxy fusion 이득을 줄인다는 점을 반영하며, BSR은 4096 크기의 block별 측정 crossover를 넘을 때만 선택한다.  +
spectral-operator-compiler: Before optimizing a complex-arithmetic identity (Karatsuba/Gauss 3-multiply), measure R = t_complex/t_real for the exact target contraction: the 4/3× ceiling is only reachable when R>3 (the baseline actually pays the 4-multiply price). Batched-mode contractions (small GEMMs over a batch axis) stay memory/launch-bound and cap R below 3, unlike a single dense GEMM. A same-BLAS GEMM control cleanly separates shape-boundedness from library effects, and disambiguates whether an observed speedup came from multiply-saving vs launch amortization.  +
multi-lora-fusion: When a graded-transition/functional-form question refuses to resolve on held-out data near the knee, extend measurements far past it before assuming the forms are equivalent — divergence far out can reveal that the models share a wrong premise (here, a single knee). Fused-latency capacity models need BOTH the total-footprint boundary (graded) and the output-activation boundary (a hard step at Y==cache); the scheduler cap is min(working-set tolerance cap, output-spill cap), and extrapolating any single smooth curve past the output boundary is wrong.  +
mlir-fft-compiler: When deciding whether an arithmetic rewrite that trades multiplies for shared temporaries is worth applying, check whether its resource cost and its arithmetic benefit are functions of different problem dimensions. Here register pressure is an input-tile property and instruction savings are a reuse property, and because they do not interact the guard collapses from a per-shape benchmark sweep to two integers — no IR emission needed. The corollary is that a cost model seeing only issue slots is not merely imprecise for such rewrites but wrong in the enabling direction, and wrong by amounts large enough to matter. Before running a hardware sweep to tabulate a crossover, test whether the crossover factorizes. openevolve-moe-prototype: When a preference-pair or contrastive-data pipeline harvests pairs from sibling candidates sharing a parent, measure sibling outcome correlation before attributing low yield to model capability, budget, or a structural ceiling. Compare observed converting-family counts against a family-size-preserving within-stratum label reshuffle: this is assumption-light, needs no new runs, and cleanly separates 'the model rarely produces usable negatives' from 'the sampler produces one-sided families.' Equally reusable: a monotone rank test cannot detect a hump, so a non-significant Spearman rho for a rate that theory says should be unimodal is not evidence of no effect - test the band directly and label it post-hoc. And when a candidate explanatory variable correlates with elapsed search time, report both partial correlations; here that is what showed run length to be a proxy with no independent effect. Finally, a strong transition-level effect need not aggregate to the group level, so verify the aggregation step rather than assuming it. spectral-operator-compiler: Before proposing or evaluating an algebraic optimization of a tensor operator, measure the operator's achieved GFLOP/s against the backend's roofline and its scaling across thread counts. A schedule deficit is invisible to FLOP counting and to speedup ratios computed against the deficient baseline itself, and can be an order of magnitude larger than any arithmetic identity's entire ceiling — here a 14x lowering factor sat unmeasured across four milestones spent on a 4/3x identity. Flat throughput in thread count is the diagnostic signature of a schedule problem rather than a bandwidth or arithmetic one. A corollary for compiler legality models: this class of win may require changing *parameter storage layout*, not just rewriting the expression, because a per-call layout conversion whose cost is O(param size) can exceed the GEMM it enables at small batch; a pass restricted to local expression rewriting cannot claim it and may make things worse. Finally, a prior probe's regime classification can itself be an artifact of an incompetent baseline: the earlier finding that this contraction was memory/launch-bound (R < 3) was measured against a serial einsum.  
mlir-fft-compiler: Do not repeat this experiment without a changed hypothesis; reuse the measured scientific verdict and device-specific bounds.  +
mlir-fft-compiler: When a register-pressure cost model inverts a hardware sign, check whether the modeled mechanism actually varies across the measured points before recalibrating it -- a quantity with a 5 pp spread that anti-predicts the winner needs replacing, not retuning. For register-limited GPU kernels, model pressure as a threshold at the architectural cap rather than as a continuous occupancy term: below the cap it is free, above it excess registers become memory traffic, which is why such cost models fail by sign flip rather than gradual error. The enabling reduction is that spill traffic can depend on the code variant only through its excess register count, so an expensive schedule-dependent memory term collapses into a closed-form register count the compiler already has -- test this by comparing implied per-slot reload counts across variants. Finally, separate parameter-free claims from fitted ones when hardware points are scarce: a 4-parameter fit to 4 points is a calibration, and only the zero-parameter predicates constitute evidence. multi-lora-fusion: Before building a min()-style selector over two capacity constraints, check whether the quantities they are defined on are nested. If one tensor is contained in the other's byte count, the caps inherit a fixed ordering bounded by the ratio of the two capacity thresholds, and no amount of shape search will produce an inversion -- the search is refutable by algebra in minutes instead of by sweeps. Separately, do not let a proven degeneracy over hard caps silently propagate to tolerance-relaxed or budget-relaxed versions of the same caps: relaxation breaks the containment argument, and the second constraint becomes live exactly in the throughput-oriented regime a real scheduler operates in. Finally, when comparing two numerically equivalent computations that differ by reassociation (e.g. (XB)A vs X(BA)), use a RELATIVE tolerance -- the disagreement scales with output magnitude, so an absolute-only tolerance with unseeded random operands produces tests that fail intermittently on large draws. spectral-operator-compiler: Never rank or triage candidate optimizations by their individually measured speedups when they target different stages of the same operator — solo numbers are mutually Amdahl-masked and systematically under-value combinations, most severely for the highest-value pairs. A lever with an unimpressive solo number may simply be masked by a stage another lever removes. Run the full factorial instead, and bracket the expected result between two nulls: the multiplicative product (provably too weak) and an isolated-stage Amdahl prediction (too strong, because timing stages on pre-materialized operands over-credits the stage speedup that the in-situ forward actually realizes). This directly implicates compiler cost models that score rewrites one at a time. openevolve-moe-prototype: When sibling or group-level outcome clustering appears in an evolutionary or tree-structured search, do not attribute it to sampler diversity before testing whether a shared covariate of the group's root explains it. The decisive test is cheap and needs no new runs: build non-sibling control pairs from the same task, refine matching cells one covariate at a time, and permute the group label within cells. Two diagnostics carry most of the information — whether the suspected carrier (here, code similarity) predicts the outcome in the CONTROL group, and how much of the raw excess each matching layer absorbs. A carrier that correlates with group membership but not with the outcome among controls is a real property of the sampler that is nonetheless causally inert. Equally important: decompose the excess by outcome channel rather than reporting pooled concordance, because a pooled statistic can be dominated by a channel the covariate explains while the channel that actually gates the downstream objective behaves oppositely. Relatedly, an iid baseline built on rates pooled across a heterogeneous population will over-predict and manufacture apparent clustering; condition the baseline on…  
For cache-capacity models, measure both nested tensor boundaries and score held-out tails; a sharp output-tensor transition can coexist with a graded working-set rise, while an unmodified square-only harness cannot answer rectangular reload-law claims.  +