首页
/ RuView 多频网格感知应用实战:从 RF 层析成像到穿墙检测的五个单信道无法实现的应用

RuView 多频网格感知应用实战:从 RF 层析成像到穿墙检测的五个单信道无法实现的应用

2026-09-07 21:07:53作者:薛曦旖Francesca

导读

RuView 的多频网格扫描(ADR-073)让两台 ESP32-S3 节点在 6 个 WiFi 信道间跳频,把"被动照射"邻居 AP 变成射频感知基础设施。本文以 ADR-078 为骨架,系统讲解只有多频扫描才能实现的五类感知应用:RF 层析成像、无源双基地雷达、频选材料分类、穿墙运动检测与设备射频指纹。读完本文,你将掌握每个应用的物理原理、算法流程、对应脚本的真实 CLI 参数,以及脚本在 scripts 目录中的源码级实现细节,可直接用 live UDP 或 JSONL 回放数据复现实验。


一、背景:为什么需要"多频"而不是"加信道"

ADR-078 是 ADR-073 多频网格扫描 的后续。ADR-073 建立了这样的基础设施:2 个 ESP32-S3 节点分别跳频扫描 6 个 WiFi 信道(1、3、5、6、9、11),利用环境里 9 个邻居 WiFi 网络作为"免费的被动照射源(illuminator of opportunity)"。

单信道 CSI 只观察一个频率(例如信道 5 @ 2432 MHz),在约 20 MHz 带宽内提供 52~64 个 OFDM 子载波的幅度与相位。多频扫描把观测扩展到 2412–2462 MHz 的 50 MHz 跨度,每个信道给出独立的多径观测——同一物理路径在不同频率上的干涉图案完全不同。

关键物理事实:2 cm 的路径差在 2432 MHz 处产生干涉相消(null),却在 2412 MHz 处产生相长干涉。因此频率本身就是一条新的信息维度,这正是本 ADR 五类应用的共同立足点。

1.1 可用的部署基础设施

资源 细节
节点 1(COM7) ESP32-S3,跳频信道 1、6、11(互不重叠),200 ms 驻留
节点 2 ESP32-S3,跳频信道 3、5、9(交错、贴近邻居 AP),200 ms 驻留
邻居 AP 9 个网络,分布在信道 3、5、6、9、11
数据传输 UDP 5006 端口,ADR-018 二进制帧格式
录制数据 data/recordings/overnight-*.csi.jsonl

1.2 邻居 AP 照射源表(来自 ADR-078)

SSID 信道 频率 (MHz) 信号强度 (%) 角色
ruv.net 5 2432 100 主照射源
Cohen-Guest 5 2432 100 同信道照射源
COGECO-21B20 11 2462 100 高频照射源
HP M255 LaserJet 5 2432 94 设备指纹识别目标
conclusion mesh 3 2422 44 低频照射源
NETGEAR72 9 2452 42 中高频照射源
NETGEAR72-Guest 9 2452 42 同信道照射源
COGECO-4321 11 2462 30 弱高频照射源
Innanen 6 2437 19 弱中心频段照射源

ADR-073 还指出,跳频会牺牲单信道采样率(单信道 12 fps → 每信道约 4 fps),且只有 ADR-018 二进制帧头在字节 [8..11] 携带信道/频率字段,服务端才能区分不同信道的帧——这正是 ADR-078 五个脚本能工作的前置条件。


二、应用一:RF 层析成像(RF Tomographic Imaging)

2.1 原理与算法

由于多径干涉随频率变化,每个 WiFi 信道对房间的"透视结果"各不相同。6 信道 × 2 节点形成 12 条独立的 RF 路径观测。RF 层析把每条发射–接收路径上的衰减反投影(back-project)到房间网格:路径交汇处衰减高即存在吸收体(人、家具、墙),衰减低则为空旷空间。

ADR-078 给出的算法流程为:

For each CSI frame:
  1. Compute path attenuation = RSSI_free_space - RSSI_measured
  2. For each cell in a 10x10 room grid:
     a. Compute the cell's distance to the TX->RX line (perpendicular distance)
     b. Weight contribution by 1/distance (cells near the path contribute more)
  3. Accumulate weighted attenuation across all frames, channels, and node pairs
  4. Normalize: cells with high accumulated attenuation = absorbers (people/objects)

可使用代数重建技术(ART)做迭代细化,或直接用简单反投影做实时显示。

2.2 分辨率与单信道的局限

  • 理论分辨率约 λ/2 = 6 cm(2.4 GHz);
  • 双节点几何下实际约 20 cm;
  • 频率分集增益约 √6 ≈ 2.4 倍(相对单信道)。

单信道对每条路径只有一个频率观测点。当路径恰好处于相长干涉点时,单信道测得的穿透衰减可能为零,从而漏检人体;多信道提供了穿过同一空间路径的独立衰减测量,大幅提升可靠性。

2.3 源码实现要点:rf-tomography.js

脚本TomographyGrid 类为核心(rf-tomography.js):

  • 内部维护 attenuationpathCount 两个 Float64Array(gridSize × gridSize),前者累加衰减、后者用于归一化,还有按信道区分的 channelAttenuation Map 以支持频率分析。
  • pointToLineDistance()L124-L131)用叉积计算网格单元中心到 TX→RX 直线的带符号垂直距离。
  • backProject()L142-L175)中,反投影核宽取 max(cellWidth, cellHeight) * 1.5(注释说明:2.4 GHz 下 λ/2 ≈ 6 cm 理论核宽,但为数值稳定取更宽),对核内每个单元按高斯权重 exp(-0.5*(dist/(kernelWidth*0.4))²) 累加。
  • detectObjects(threshold=0.6) 输出高衰减单元(潜在的"人"位置),getImage() 按 pathCount 归一化到 0–1 后映射为 8 级 Unicode 方块字符热力图(HEAT 数组),空气→实体由浅到深。

CLI 支持以下参数(源码 L31-L53):

node scripts/rf-tomography.js                                # UDP 5006 实时
node scripts/rf-tomography.js --port 5006 --duration 60      # 指定端口与运行时长
node scripts/rf-tomography.js --replay data/recordings/overnight-1775217646.csi.jsonl
node scripts/rf-tomography.js --grid 15 --node-distance 4.0  # 更细网格 + 拉大节点间距

其中 --grid 默认 10(网格规模)、--node-distance 默认 3.0 米、--room-width/--room-height 默认 5.0/4.0 米,配合 --json 可输出机器可读结果。


三、应用二:无源双基地雷达(Passive Bistatic Radar)

3.1 原理

邻居 WiFi AP 持续发送且不受我们控制。ESP32 节点捕获这些发射的 CSI,其相位与幅度已被房间内物体调制。每个邻居 AP 就是一个位于已知位置与频率的免费"机会照射源"。

这与军用无源雷达(乌克兰 Kolchuga、捷克 VERA-NG 利用 FM/电视发射塔探测飞机)原理一致——只是把广播塔换成 WiFi AP,把飞机换成室内的人。

3.2 算法与多基地几何

For each neighbor AP (identified by BSSID/channel):
  1. Track CSI phase progression across consecutive frames
  2. Compute Doppler shift: fd = d(phase)/dt / (2*pi)
     - Positive Doppler = target moving toward the AP
     - Negative Doppler = target moving away
  3. Compute range from subcarrier phase slope:
     - tau = d(phase)/d(subcarrier_freq) / (2*pi)
     - range = c * tau (where c = speed of light)
  4. Build range-Doppler map per AP
  5. Fuse multi-static detections:
     - Each AP provides a range ellipse (locus of constant TX->target->RX delay)
     - Intersection of 3+ ellipses = target position

3 个以上邻居 AP × 2 个 ESP32 接收端 → 6 个以上双基地对。每对把目标约束在一个椭圆(TX→目标→RX 等延时轨迹)上,多个椭圆求交即得 2D 位置:

         AP1 (ch5)        AP2 (ch11)
           \                /
            \   TARGET    /
             \   /|\    /
              \ / | \ /
    ESP32_1 ---*--+--*--- ESP32_2
              / \ | / \
             /   \|/    \
            /   TARGET   \
           /                \
         AP3 (ch3)        AP4 (ch9)

单信道只能看到该信道上的 AP——比如固定信道 5 只能看到 ruv.net 与 Cohen-Guest,完全错过 COGECO-21B20(ch11)、conclusion mesh(ch3)、NETGEAR72(ch9)。多频扫描捕获 6 个信道全部 9 个 AP 的照射,三角定位才具备几何多样性。

3.3 源码实现要点:passive-radar.js

脚本 的核心是 IlluminatorTrackerL94-L271):

  • 每个照射源按 ssid-node 键维护最多 64 帧的相位/幅度环形缓冲(maxHistory = 64)。
  • computeRangeDoppler()多普勒由每个子载波的相位–时间线性回归斜率得到:fd = slope / (2π);回归前先做相位解缠绕(while (phase - prevPhase > π) phase -= 2π,见 L152-L164)。
  • 距离由每帧内相位随子载波索引的斜率得到:已知 OFDM 子载波间隔 312.5 kHztau = |slope| / (2π × 312.5e3),再 range = c·tau/2(双基地距离减半)。
  • 距离–多普勒图覆盖 maxDoppler = 5 Hz(约合 2.4 GHz 下 0.3 m/s)与 maxRange = 10 m,由 --doppler-bins(默认 16)和 --range-bins(默认 12)控制分 bin 粒度。
  • getDominantDoppler() 从图中提取最强目标的 doppler / velocity = fd·λ/2 / range
  • MultiStaticFusionL276 起)按信道匹配 ILLUMINATORS 表(脚本内 8 个 AP 均带 freq 与估算的 pos 坐标)为每个照射源独立建 tracker,最后融合多个双基地椭圆求交。

运行示例:

node scripts/passive-radar.js                                # 实时,默认间隔 3000 ms
node scripts/passive-radar.js --port 5006 --duration 60
node scripts/passive-radar.js --replay data/recordings/overnight-1775217646.csi.jsonl
node scripts/passive-radar.js --doppler-bins 16 --range-bins 12

四、应用三:频选材料分类(Frequency-Selective Material Classification)

4.1 原理

不同材料对 2.4 GHz WiFi 的吸收/反射随频率变化的方式不同:

材料 衰减特征 频率依赖性
金属 全反射、深 null 频率平坦(等量阻挡)
水/人体 强吸收 随频率上升(介电损耗 ~ f²)
木材 温和衰减 随频率上升(含水率)
玻璃 低衰减 几乎频率平坦
石膏板 低–中衰减 轻微频率依赖
混凝土 中–高衰减 随频率上升

物理依据:2.4 GHz 下水的复介电常数约为 εr = 77 − j10,虚部(损耗)在 WiFi 频带内随频率上升;金属在任意频率都是理想导体;玻璃(εr ≈ 6 − j0.1)在所有 WiFi 频率上损耗可忽略。50 MHz 跨度(2412–2462 MHz)虽然只占载频约 2%,但足以区分含水材料(人体、湿木、盆栽)的频变吸收特征与金属、玻璃这类频率平坦材料的平坦特征。

4.2 算法

ADR-078 的判定框架为:先算平坦比 flat ratio = std(A across channels) / mean(A across channels) 与线性回归斜率,再按规则分类——金属是高衰减+平坦;玻璃/空气是低衰减+平坦;水/人体是正斜率(衰减随频率增)+高衰减;木材是正斜率+中等衰减;高跨信道方差则为复杂散射体。

注意方向约定:ADR-078 以"衰减 A"表述(正斜率 = 衰减随频率上升 = 含水材料),而 material-classifier.js 的实现以幅度为度量(幅度随频率下降即衰减随频率上升),源码注释 L176-L177 写的是 "Negative slope (amp decreases with freq) AND mean < 6.0 -> Water/Human"。两者只是符号取反,物理一致。

4.3 源码实现要点:material-classifier.js

  • 材料字典(L70-L78):METAL(#)WATER(~)HUMAN(@)WOOD(|)GLASS(:)AIR(.)COMPLEX(?),各带 ASCII 标记与说明。
  • 关键常量 NULL_THRESHOLD = 2.0,用于把某子载波在特定信道上的幅度视为 null(该信道看不到这个频点)。
  • 分类器对每个子载波计算跨信道 flatRatioslopePerMHz(幅度–频率线性回归归一化)。实际判定阈值从源码可见(L235-L248):flatRatio < 0.15 且均值极低判金属类;均值较高判玻璃/空气类;slopePerMHz 为显著负值且均值区间不同分别判 Water/Human、Wood;flatRatio > 0.5 判 Complex。实现文档中的 0.1 调整为 0.15,需以源码为准。
  • CLI 提供 --window(默认 20 帧的分析窗口)与 --interval(默认 5000 ms)。注意分类需要长时间平均窗口(5–10 s)来提高频变测量的 SNR,这也是本应用刷新率低于前两者的原因。

运行示例:

node scripts/material-classifier.js
node scripts/material-classifier.js --port 5006 --duration 60
node scripts/material-classifier.js --replay data/recordings/overnight-1775217646.csi.jsonl
node scripts/material-classifier.js --window 40

4.4 为什么单信道不行

材料分类必须测量"衰减如何随频率变化"。单信道只有一个频率点,根本没有可供测量的频率轴;多频扫描提供跨越 50 MHz 的 6 个频率点,才能计算斜率与方差。


五、应用四:穿墙运动检测(Through-Wall Motion Detection)

5.1 原理

WiFi 频率越低穿墙越好。2.4 GHz 下标准石膏板+木龙骨隔墙的穿损大致为:信道 1(2412 MHz)2.5 dB、信道 6(2437 MHz)2.6 dB、信道 11(2462 MHz)2.7 dB(混凝土则约 8.0/8.3/8.6 dB)。绝对差异很小(约 0.2 dB),但 6 个信道仍可实现:

  1. 在校准期(墙后无人)标定墙体的频率相关衰减轮廓
  2. 检测超出基线的变化 = 墙后运动;
  3. 对低频信道加权更高(其穿墙 SNR 更好);
  4. 跨信道交叉验证:真实的墙后运动会出现在所有信道上(幅度随频率变化),而干扰/噪声通常只出现在单个信道。

5.2 算法

Calibration phase (60 seconds, no motion behind wall):
  For each channel ch:
    baseline_mean[ch] = mean(CSI amplitude over calibration)
    baseline_std[ch] = std(CSI amplitude over calibration)

Detection phase:
  For each frame on channel ch:
    1. Compute deviation = |current_amplitude - baseline_mean[ch]| / baseline_std[ch]
    2. Channel weight = f(penetration_quality[ch])
    3. Per-channel score = deviation * weight

  Fused score = weighted sum across channels
  Alert if fused_score > threshold for N consecutive frames

单信道穿墙检测误报率高,因为无法把墙效应与运动区分开。多频方案在校准时刻画墙体频率响应、逐信道扣除墙效应,再跨信道交叉验证(真实运动跨频率相干,噪声不相干),频率分集带来约 √6 ≈ 2.4 倍的检测 SNR 提升。

5.3 源码实现要点:through-wall-detector.js

脚本 实现了完整的"校准→检测→持续告警"状态机:

  • PENETRATION_WEIGHTL74-L80)体现"低频穿透更好":信道 1(2412 MHz)权重 1.00(最佳穿透),信道 11(2462 MHz)权重 0.80(最差),其余信道回退默认 0.9。
  • ChannelBaselineL91 起)在校准期累计每信道幅度均值/方差,computeDeviation()|amp - mean| / std 计算逐子载波偏差。
  • 检测阶段逐信道算 weightedScore = deviation × weight,融合分 fusedScore 为各信道加权均值(L227-L233)。
  • 跨信道相干性 coherence:只有当多数信道偏差超过 alertThreshold × 0.5 时才累计告警,且需 fusedScore > threshold && coherence > 0.4L245-L248),连续 consecutiveFrames(默认 3)帧成立才真正触发——这就是把"真实运动相干、噪声不相干"落成代码。

ADR-078 要求 60 s 校准;实现中 --calibrate 默认为 30 秒可调:

node scripts/through-wall-detector.js --calibrate 60          # 60 秒墙后无人的校准
node scripts/through-wall-detector.js --port 5006 --duration 300
node scripts/through-wall-detector.js --replay data/recordings/overnight-1775217646.csi.jsonl
node scripts/through-wall-detector.js --threshold 3.0 --consecutive-frames 5

其他参数:--interval 默认 1000 ms,--threshold 默认 2.5,--json 输出结构化告警。


六、应用五:基于 RF 辐射的设备指纹(Device Fingerprinting via RF Emissions)

6.1 原理

每台电子设备都有独特的 RF 特征,会以设备专属方式调制邻近的 WiFi 信号:

  • WiFi AP:独特的发射功率、相位噪声与时钟漂移特征;
  • 打印机:HP M255 LaserJet 打印时(电机 EMI)在特定子载波上产生图案;
  • 微波炉:2.45 GHz 磁控管辐射横跨信道 8–11,形成宽带干扰;
  • 蓝牙设备:2.4 GHz 跳频在多个信道制造瞬态尖峰。

6.2 算法

Learning phase:
  For each known device (from WiFi scan SSID/BSSID correlation):
    1. Record CSI patterns when device is active vs inactive
    2. Compute per-channel signature:
       - Mean amplitude profile across subcarriers
       - Variance profile (active devices increase variance on specific subcarriers)
       - Phase noise characteristics
    3. Store signature as device fingerprint

Detection phase:
  For each analysis window:
    1. Compute current CSI profile per channel
    2. Correlate against stored fingerprints
    3. Report device activity: "HP printer active (confidence 0.87)"

多频优势:不同设备作用于不同信道——HP 打印机(ch5)只在打印时影响信道 5 的子载波 20–40;NETGEAR72 路由器(ch9)在信道 9 制造与时钟漂移相关的相位图案;微波炉宽带干扰在信道 9–11 最强。单信道只能看到作用于该信道的设备;多频扫描观察整个 2412–2462 MHz,无论设备工作在哪个信道都能检测其活动。

6.3 源码实现要点:device-fingerprint.js

脚本 内置了从 WiFi 扫描获得的 8 个已知设备表(L71-L80),带 id/ssid/channel/signal/type,例如 hp-printer(信道 5,信号 94,type: printer)、netgear72(信道 9)、cogeco-21b20(信道 11)。指纹学习与保存 CLI:

node scripts/device-fingerprint.js                           # 检测模式(默认)
node scripts/device-fingerprint.js --learn 30                # 30 秒学习阶段
node scripts/device-fingerprint.js --port 5006 --duration 120
node scripts/device-fingerprint.js --replay data/recordings/overnight-1775217646.csi.jsonl
node scripts/device-fingerprint.js --save-fingerprints fp.json
node scripts/device-fingerprint.js --load-fingerprints fp.json   # 复用已存指纹

学习时长 --learn 默认 20 秒,--interval 默认 5000 ms;--save/--load-fingerprints 支持把指纹持久化到 JSON,便于多次检测复用同一批特征库。


七、五个脚本的共享基础设施

ADR-078 的"Implementation"一节强调,5 个脚本共享同一套基础设施,这在源码中逐一对得上:

组件 细节 源码位置
包格式 ADR-018 二进制(UDP)或 .csi.jsonl(回放) 两套解析共用
IQ 解析 parseIqHex()(JSONL 用)、parseCSIFrame()(二进制 UDP 用) rf-tomography.js L246-L293
信道分配 二进制帧的 freq 字段;老 JSONL 用模拟轮询 各脚本 CHANNEL_FREQ 映射
节点位置 可配置,默认节点 1 在 (0,0)、节点 2 在 (3,0) 米(脚本内以 --node-distance、房间尺寸参数表达) 各脚本 NODE_POS
可视化 ASCII Unicode 块字符与制表符 HEAT / RD_CHARS / 各材料字符

二进制帧解析逻辑从源码可确认(rf-tomography.js L265-L293):魔数 0xC5110001,20 字节头内 nodeId@4nSubcarriers@6freqMhz@8rssi@16,数据区每子载波 2 字节有符号 I/Q。信道由频率换算:freqMhz ∈ [2412, 2484]channel = round((freqMhz-2412)/5)+1(2484 MHz 特判为信道 14)。

脚本规模与核心算法(ADR-078 实现清单):

脚本 应用 约行数 核心算法
rf-tomography.js RF 层析成像 ~500 ART/反投影
passive-radar.js 无源双基地雷达 ~500 距离–多普勒 + 多基地融合
material-classifier.js 材料分类 ~450 频选衰减分析
through-wall-detector.js 穿墙检测 ~400 基线化多信道异常检测
device-fingerprint.js 设备指纹 ~450 逐信道签名相关

注:ADR-078 中记录路径写作 data/recordings/overnight-*.csi.jsonl,并以 overnight-1775217646.csi.jsonl 作为回放示例;ADR 也明确指出这些历史录制数据采集于多频扫描部署之前、缺少信道/频率字段,回放时代码会为旧数据模拟信道分配(见下文"风险")。

数据需求与两种运行模式

  • Live 模式:UDP 5006 端口,2 个 ESP32 节点按 ADR-073 跳频。注意需先按 ADR-073 的 provisioning 命令配置固件跳频表:
    # 节点 1(COM7):非重叠信道 1、6、11
    python firmware/esp32-csi-node/provision.py --port COM7 \
      --ssid "ruv.net" --password "..." --target-ip 192.168.1.20 \
      --hop-channels 1,6,11 --hop-dwell-ms 250
    # 节点 2(COM_):交错信道 3、5、9
    python firmware/esp32-csi-node/provision.py --port COM_ \
      --ssid "ruv.net" --password "..." --target-ip 192.168.1.20 \
      --hop-channels 3,5,9 --hop-dwell-ms 250
    
    跳频基础设施由固件提供(ADR-029 的 csi_collector_set_hop_table() 等),ADR-018 帧头已含信道/频率字段,服务端解析无需改固件。
  • Replay 模式--replay <file.csi.jsonl>,适用于离线验证与算法开发。
  • 校准:穿墙检测器用 --calibrate 完成 60 s(默认 30 s)无运动基线。

性能目标(ADR-078 设计指标)

应用 延迟 更新率 精度目标
RF 层析成像 每帧 <100 ms 1 Hz 图像更新 20 cm 空间分辨率
无源雷达 每帧 <200 ms 2 Hz 距离–多普勒 1 m 距离、0.1 m/s 速度
材料分类 每窗口 <500 ms 0.5 Hz 分类 70% 材料识别正确率
穿墙检测 每帧 <100 ms 2 Hz 检测 90% 真阳性、<10% 假阳性
设备指纹 每窗口 <1 s 0.2 Hz 活动更新 80% 设备识别正确率

以上为 ADR-078 提出的性能目标(非已实测结果),可作为复现实验的验收基准。


八、风险与缓解(在源码中的印证)

  • 频率跨度有限:50 MHz 只有载频的 2%,材料分类精度依赖斜率在此窄带内可测。缓解:用 5–10 秒长平均窗口——对应脚本中 material-classifier.js--window(默认 20 帧)与较长的 --interval
  • 节点几何受限:2 个节点使反投影沿节点连线方向近似 1D,垂直方向分辨率差。缓解:邻居 AP 为被动雷达模式提供额外几何分集——见各脚本内置的 ILLUMINATORS 位置表。
  • 旧数据兼容性overnight-*.csi.jsonl 录制于多频部署之前、无信道字段,回放时代码模拟信道分配(文档描述);完整多频数据需要带跳频重新录制。
  • 相位校准:被动雷达需要跨帧精确相位跟踪,但 ESP32 CSI 每次跳频引入随机相位偏移。缓解:使用相邻帧的相位差而非绝对相位——passive-radar.jscomputeRangeDoppler() 即对相位历史做差分式解缠绕回归,规避了绝对相位问题。

九、被否定的备选方案(ADR-078 记录)

  1. 5 GHz 多频:环境无 5 GHz AP 可见、无免费照射源,放弃。
  2. UWB 超宽带:ESP32-S3 不支持 UWB,需额外 DW1000/DW3000 硬件,放弃。
  3. 专用雷达硬件:多频 WiFi 感知可利用现有基础设施以零额外成本实现类似能力,放弃。

结语与进一步阅读

ADR-078 的价值在于把"信道跳频"这一传输层能力转化为五类可运行的感知应用。每一个应用都精确对应 scripts 目录下真实可执行的 Node.js 脚本,可先以 --replay 验证算法,再接入 ADR-073 的 UDP 5006 实时流。相关文档链条为:ADR-073 多频网格扫描ADR-078 多频网格感知应用;底层依赖包括 ADR-018 二进制帧格式、ADR-029 跳频基础设施与 ADR-069 Cognitum Seed 向量库集成(多频特征向量的 kNN 语义检索)。作为延伸,多频输出的跨信道时序模式还可供 ADR-074 的 SNN(snn-csi-processor.js)做跨信道时空融合。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.14 K
2.75 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
857
1.35 K
docsdocs
暂无描述
Markdown
898
5.82 K
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
921
1.84 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.8 K
1.02 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
531
596
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
1.02 K
519
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.36 K
1.46 K
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
548
391