数学库算法开发工程师 (稠密矩阵方向)

BeijingShanghaiChengduXi'anFull-timePosted Apr 7, 2026

Job description

【团队与角色简介】 我们正在为公司的新一代自研芯片打造从 0 到 1 的底层软件生态。在自研硬件与底层驱动全面 Ready 之前,你将作为核心计算库团队的“先遣军”,负责在标准 CPU/GPU(如 NVIDIA CUDA)环境下,从头设计并开发对标 cuBLASMp/cuSolverMp 的分布式稠密线性代数库的原型系统与参考模型。 你的工作将决定整个分布式数学库的宏观架构走向,确保复杂的数学切分逻辑、分布式通信与 DAG 调度在软件层面上做到“绝对正确”与“高效解耦”,为后续向自研芯片的无缝迁移奠定坚实基础。

【岗位职责】

  1. 分布式算法原型开发:在标准 CPU 或 NVIDIA GPU 环境下,设计并实现多机多卡的分布式线性代数算法(如 2D Block Cyclic 数据分布、Distributed GEMM、LU、Cholesky 分解等),验证数学逻辑与边界处理的绝对正确性。
  2. 调度引擎与流水线设计:开发基于 DAG(有向无环图)的异步任务调度器,设计计算(Compute)与集合通信(MPI/NCCL)的掩盖(Overlap)策略,解决宏观架构上的数据依赖与节点饥饿问题。
  3. 硬件抽象层(HAL)设计:采用优秀的软件工程实践,设计高度解耦的 C++ 架构。将上层的分布式调度、内存池管理与底层的计算 Kernel 严格分离,确保未来只需替换底层 API 即可平滑迁移至自研芯片。
  4. 前瞻性架构探索:在原型阶段探索分布式切分策略,评估其在特定网络拓扑下的理论通信开销。

【任职要求】

  1. 编程与架构功底:精通现代 C/C++(C++14/17),具备优秀的面向对象设计(OOP)和泛型编程能力,能够设计优雅、可扩展的底层库 API 及硬件抽象层。
  2. 数学与算法基础:具备深厚的数值线性代数功底,深刻理解 BLAS/LAPACK 的标准语义,熟练掌握矩阵分块算法(Block Algorithms)及 ScaLAPACK 风格的分布式计算逻辑。
  3. 分布式与并发编程:熟练掌握 MPI 或 NCCL 等通信库,对点对点通信、集合通信(AllReduce, Broadcast)有深入理解;精通多线程编程及异步任务调度机制。
  4. 异构计算基础:熟悉 CUDA C++ 编程模型及异步执行流(CUDA Streams),能够编写标准的 GPU Kernel 以支撑原型系统的运行(不要求极致的微架构调优)。
  5. 工程素养:熟练使用 CMake、Git、GTest 等工具,具备良好的单元测试习惯和严谨的逻辑思维,能够独立排查复杂的分布式死锁(Deadlock)或竞态条件(Race Condition)问题。

【加分项】

  1. 深入研究过开源分布式 HPC 核心库(如 SLATE, DPLASMA, MAGMA, ScaLAPACK, Elemental)的源码与架构。
  2. 有过为新硬件构建软件模拟器(Emulator)或参考模型经验者优先。

Description copied from Smart Logic Tech's careers page. Read the full posting before you apply.

More jobs at Smart Logic Tech

See all openings at Smart Logic Tech