원클릭으로
fix-2d-array-row-write
Preallocated 2D array row assignment (pc[p] = array) silently fails for large arrays — use ins.stack instead
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Preallocated 2D array row assignment (pc[p] = array) silently fails for large arrays — use ins.stack instead
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Add device information query functions through HAL → ins:: API → language bindings
Add --device all/--timer/--info CLI flags to demos across all languages for competition scoring
Add composite signal operators using existing primitives (no dedicated backend kernels needed)
How to port a cusignal Python/CUDA module to ins::signal C++ using Insight7 primitives and HAL
Profile and optimize binding language (Lua/Julia/Python) demo performance to match or exceed C++ baseline
busted loads _insight.so from ~/.luarocks/lib first, not build/ — must copy .so after rebuild
| name | fix-2d-array-row-write |
| description | Preallocated 2D array row assignment (pc[p] = array) silently fails for large arrays — use ins.stack instead |
| source | auto-skill |
| extracted_at | 2026-06-06T19:58:07.524Z |
对预分配的 2D complex128 数组做逐行赋值 pc[p] = fftconvolve(...) 或 s_rx[p] = pulse + noise 时,当行数 >= 128,所有行的值变成相同的(最后写入的那一行)。行数小时(如 4)正常。
pc[p] 返回的 view 在 Insight7 的 __setitem__ 实现中有 bug,对于大步长的 2D 数组写入不生效。多次写入只覆盖了同一片内存。
不要使用 pc[p] = row_array 模式:
# ❌ 错误 — 大数组时所有行变成相同值
pc = ins.zeros([N_PULSES, N], ins.complex128)
for p in range(N_PULSES):
pc[p] = compute_some_row() # Bug: 只有最后一行有效
使用 ins.stack(list_of_rows, 0) 构建:
# ✅ 正确 — 适用于任意行数
rows = []
for p in range(N_PULSES):
rows.append(compute_some_row())
pc = ins.stack(rows, 0)
ins.stack 构建的 2D 数组行是视图(view),不是拷贝。将视图传递给某些操作(如 fftconvolve)可能产生错误结果(也读到错误内存)如果回波模拟和脉冲压缩需要串行,将两者合并到同一循环中,避免创建中间 2D 数组:
rows = []
for p in range(N_PULSES):
s_rx = generate_pulse(...) # 返回新 Array
pc_row = ins.signal.fftconvolve(s_rx, mf, "same") # s_rx 是新 Array 不是 view
rows.append(pc_row)
pc = ins.stack(rows, 0)