ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

oil-gas-ops-prospect Python接口完全指南:complex_mul与real_fft 10分钟上手教程

oil-gas-ops-prospect Python接口完全指南:complex_mul与real_fft 10分钟上手教程 oil-gas-ops-prospect Python接口完全指南complex_mul与real_fft 10分钟上手教程【免费下载链接】oil-gas-ops-prospect面向油气勘探oil gas exploration领域的昇腾自定义算子库。仓名即 oil-gas-ops油气算子 prospect勘探目标面向地震成像、全波形反演等勘探计算场景项目地址: https://gitcode.com/cann/oil-gas-ops-prospectoil-gas-ops-prospect是面向油气勘探领域的昇腾Ascend自定义算子库提供complex_mul复数逐点乘与real_fft实数FFT等核心 Python 接口。本教程带你10分钟完成环境准备、算子调用与精度验证无需阅读 C 源码新手也能跑通。 它是什么油气勘探计算工具箱oil-gas-ops-prospect服务于地震成像、全波形反演等勘探计算场景按交付形态分三类后端后端交付物代表算子适用场景AscendCCANN OPP.run包aclnn 接口complex_mul追求极致性能、精细控制流水Triton-AscendPython whl 内 Triton kernelreal_rfft/real_irfftPython 快速表达、依赖 autogradComposite-Torch纯 PyTorch 组合模块Conv3d无需自定义 kernel 的组合算子 关键设计Python 接口按算子名统一暴露不区分实现后端也没有 NPU 时自动回退 PyTorch 参考实现——所以你可以在没有昇腾卡的开发机上先写代码。⚙️ 环境准备3步装好 Python 包前置条件当前已验证组合CANN9.0.0Toolkit 包 对应 SoC 的 Ops 包与 CANN 配套的triton-ascend3.2.1目标硬件Ascend 910BAscend910B1第 1 步克隆源码git clone https://gitcode.com/cann/oil-gas-ops-prospect.git cd oil-gas-ops-prospect第 2 步编译并安装bash build.sh --install一条命令自动完成编译 OPP.run→ 安装到 CANN → 构建 whl → 安装 whl → 跑冒烟测试。产物统一落在output/目录。第 3 步设置动态库路径export LD_LIBRARY_PATH${ASCEND_HOME_PATH}/opp/vendors/customize/op_api/lib:${ASCEND_HOME_PATH}/lib64:$LD_LIBRARY_PATH完整安装细节见 docs/zh/context/quick_install.md。 complex_mul 复数乘算子快速上手复数乘在算什么勘探信号处理中复数逐点乘是频域滤波、互相关的基本构件。complex_mul把两个实部 虚部张量对相乘wr ur * vr − ui * vi wi ur * vi ui * vr输入ur, ui, vr, vi四个 float32 张量必须同 shape返回(wr, wi)。反向传播由配套算子ComplexMulGrad承担Python 层无需单独调用。一分钟跑通示例最简调用import torch import torch_npu # noqa: F401 from oil_gas_ops_prospect.complex_mul import complex_mul ur, ui, vr, vi [torch.randn(4, 1024, devicenpu) for _ in range(4)] wr, wi complex_mul(ur, ui, vr, vi) # 返回与输入同 shape 的 (实部, 虚部)可执行的完整示例含精度自检、autograd 反向验证示例脚本examples/complex_mul_example.py接口源码ascendc/pybind/complex_mul.py开关走 AscendC 融合算子还是 PyTorchcomplex_mul默认走 PyTorch 参考实现用两个环境变量控制环境变量作用OIL_GAS_OPS_COMPLEX_MUL_IMPLascendc\|auto\|torch选择实现路径默认torchascendc/auto且张量在 NPU 时才调用融合算子OIL_GAS_OPS_REQUIRE_ASCENDC_COMPLEX_MUL1失败时抛异常而非静默回退 PyTorch调试推荐开启OIL_GAS_OPS_COMPLEX_MUL_IMPLascendc \ OIL_GAS_OPS_REQUIRE_ASCENDC_COMPLEX_MUL1 \ python3 examples/complex_mul_example.py这个静默回退设计非常友好开发机上无 NPU 也能跑通逻辑上板后一键切换融合 kernel。 real_fft 实数FFT算子快速上手为什么勘探场景离不开实数FFT地震数据的频谱分析、波场建模本质上是实数信号 ↔ 频域的往返变换。real_fft提供一对接口函数功能频率轴长度变化real_rfft(x, dim)实数正向 FFT返回(实部, 虚部)两个实数张量n → n // 2 1real_irfft(xr, xi, n, dim)从半谱重建实数信号n // 2 1 → n三步调用正向 → 重建 → 反向传播import torch import torch_npu # noqa: F401 from oil_gas_ops_prospect.real_fft import real_rfft, real_irfft x torch.randn(8, 256, devicenpu) xr, xi real_rfft(x, dim-1) # 频率轴 256 - 129 y real_irfft(xr, xi, n256, dim-1) # 半谱重建与 x 一致两个接口都支持 autograd可直接嵌入训练链路NPU 上走 Triton 融合 kernelfloat32无 NPU / Triton 不可用时自动回退torch.fft。注意norm参数只支持ortho传其他值会抛ValueError。可执行示例examples/real_fft_example.py内核实现triton-ascend/real_fft/triton_fft_real.py。✅ 精度验证跑一遍仓库自带测试不放心精度每个算子都有PyTorch 表达式为基准的上板对比脚本打印相对误差、时延与加速比cd tests/ascendc/complex_mul bash run_test.sh # 复数乘前向/反向/autograd cd tests/ascendc/fused_bias_softmax bash run_test.sh # 融合注意力前反向 e2e python3 tests/triton/real_fft/test_triton_fft_real.py # rFFT/iRFFT 精度含 CPU 回退complex_mul测试输出形如[fwd] rel_err wr... wi...PASS即精度达标默认阈值1e-5。测试目录说明见 tests/ascendc/complex_mul/README.md。❓ 常见问题速查问题解答没有 NPU 能跑吗能。complex_mul/real_fft均自动回退 PyTorch /torch.fft开发机上可写代码做逻辑验证为什么normbackward报错实数 FFT 接口只支持ortho保持与内部基矩阵缓存一致real_irfft抛ValueError检查xr与xishape 是否相同且xr.shape[dim] n // 2 1想强制走自定义算子设置OIL_GAS_OPS_..._IMPLascendc加..._REQUIRE_...1失败不再静默回退CANN 安装路径非默认构建时指定ASCEND_HOME_PATH/path/to/cann bash build.sh --install 进阶阅读仓库里的宝藏文档想深入某一层实现这些入口按由浅入深排列主题文档完整接口签名与环境变量docs/zh/api_list.md算子数学定义、shape/dtype 约束docs/zh/op_list.md10分钟快速入门构建调用测试docs/QUICKSTART.mdC 两段式 aclnn 调用样例examples/aclnn/complex_mul/test_aclnn_complex_mul.cppAscendC 多算子构建流程ascendc/README.md目录结构与职责说明docs/zh/context/dir_structure.md总结oil-gas-ops-prospect的 Python 接口设计遵循算子名暴露、实现透明、无卡可跑三原则。按本教程clone → build.sh --install → 跑示例三步走10 分钟内你就能在昇腾上跑起complex_mul与real_fft并用手上仓库的测试脚本完成精度验收。【免费下载链接】oil-gas-ops-prospect面向油气勘探oil gas exploration领域的昇腾自定义算子库。仓名即 oil-gas-ops油气算子 prospect勘探目标面向地震成像、全波形反演等勘探计算场景项目地址: https://gitcode.com/cann/oil-gas-ops-prospect创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表