ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

NVIDIA Warp 版本演进技术解读:从 CHANGELOG 看 GPU 加速框架的能力图谱(2021—2026)

2026/9/17 11:25:26 拓冰建站 浏览量
NVIDIA Warp 版本演进技术解读:从 CHANGELOG 看 GPU 加速框架的能力图谱(2021—2026) NVIDIA Warp 版本演进技术解读从 CHANGELOG 看 GPU 加速框架的能力图谱2021—2026【免费下载链接】warpA Python framework for GPU-accelerated simulation, robotics, and machine learning.项目地址: https://gitcode.com/GitHub_Trending/warp/warpWarp 是一个用 Python 编写、面向 GPU 加速仿真、机器人与机器学习的框架其核心思路是把 Python 核函数wp.kernel即时编译为 CPULLVM与 CUDA 原生代码并围绕数组、Tile、自动微分、CUDA Graph 与外部框架互操作构建完整生态。本文以仓库根目录 CHANGELOG.md 为骨架系统梳理 Warp 从 0.1.02021 年到 1.17.02026 年的版本演进脉络逐类解析空间查询、编译控制、自动微分、确定性执行、图形捕获、Tile 编程、稀疏/FEM、性能优化与破坏性变更并对照 warp/_src 源码给出实现依据。读完本文你将能快速定位各版本新增 API 的用途、参数含义、迁移注意事项以及如何用仓库内测试用例验证这些能力。版本节奏与文档组织方式CHANGELOG.md 采用 towncrier 生成、按月发版的节奏每个版本按Added / Removed / Deprecated / Changed / Fixed / Documentation分类列出条目并附对应 GitHub issue 编号仓库 changelog 目录下还保存着每个变更对应的 towncrier 碎片文件例如 changelog/1849.added.md便于追踪每个功能点的原始提案。从版本号看Warp 在 2021 年 5 月以 0.1.0 起步内部代号曾为 OgLang见 0.1.5 条目2024 年 3 月发布 1.0.0此后保持约每月一个 minor 版本Python 最低版本要求也随之上调0.1.25 支持 3.8/3.9 → 1.5.0 起要求 3.8 → 1.11.0 起要求 3.9 → 1.13.0 起移除 3.9、要求 3.10。CHANGELOG.md文末的版本对比链接则说明了发布分支与标签体系例如v1.17.0。最新版本 1.17.0空间查询、内核属性与外部编译扩展BVH 的 Minkowski 偏移广相查询1.17.0 为 BVH 广相broad-phase新增了wp.bvh_query_sphere()与wp.bvh_query_capsule()。文档明确了两者的语义差异球体查询使用精确的 球-AABB 重叠测试而胶囊查询是保守conservative的可能返回包围盒角落附近的额外候选。这在 warp/native/bvh.h 的原生声明与 warp/_src/builtins.py 的 Python 封装中均有体现测试见 warp/tests/geometry/test_bvh.py 与 warp/tests/geometry/test_mesh_query_aabb.py。同版本还引入wp.mesh_query_sphere()查找与球体相交的网格三角形、wp.mesh_get_bvh()直接查询网格的 BVH并将wp.MeshQuery设为 AABB 与球体网格查询的公共基类具体 AABB 查询类型仍是wp.MeshQueryAABB核函数可在运行时选择查询类型、在函数间传递wp.BvhQuery/wp.MeshQuery值并迭代它们wp.mesh_query_next()成为两种查询的统一迭代器wp.mesh_query_aabb_next()保留为别名。CUDA 内核资源控制与属性查询wp.kernel新增两个资源控制参数cuda_max_registers限制 CUDA 寄存器分配仅在 CUDA Toolkit 12.4 及以上构建中生效enable_cuda_smem_spilling控制共享内存溢出spilling仅在 CUDA Toolkit 13.0 及以上构建中生效LLVM CUDA 编译路径会忽略这两个参数。配套的wp.get_cuda_kernel_properties()用于查看某个 CUDA 内核变体的每线程寄存器数与局部内存用量。其实现位于 warp/_src/context.pyWarp 会按需编译指定变体不启动它返回含register_count每线程寄存器数与local_memory_size每线程局部内存字节数的字典键顺序与原生wp_cuda_get_kernel_properties()warp/native/warp.cu保持同步。仓库提供了专门测试 warp/tests/cuda/test_cuda_max_registers.py 与 warp/tests/cuda/test_cuda_smem_spilling.py。外部编译扩展实验性1.17.0 引入为外部 C/CUDA 使用者编译 Warp 模块的实验性 API 族wp.ModuleBuildOptions、extra_build_options模块选项、wp.build_experimental.add_builtin()、wp.build_experimental.add_native_type()、外部内核入口点 ABI 与 AOT 工件路径。文档明确提示这些 API 可能在后续版本未经弃用期直接变更属于实验性质。其他新增矩阵数据类型的 Tile 支持链式行索引如tile[i, j, k][r]涵盖读写、负行索引与伴随adjoint求导wp.kernel(name...)为内核注册与生成的本地入口点命名提供自定义名称warp.optim.linear.cg()/cr()新增可选restart参数周期性重算真实残差并重置搜索方向抑制有限精度算术带来的漂移原生 Windows ARM64 支持从源码构建并运行 CPU 内核CUDA 暂不支持。1.17.0 的移除、弃用与修复要点移除此前已弃用的 Python/Warp 数值标量到 vector/matrix/quaternion/transform 内核参数与结构体字段的隐式转换需显式构造如wp.mat22(123)移除wp.Texture.copy_from_array()/copy_to_array()别名改用copy_from()/copy_to()移除从未真正可调用的wp.spatial_jacobian()/wp.spatial_mass()。弃用NumPy 数值标量及 Python/NumPy/Warp 的 Boolean 值到复合类型的隐式转换同样进入弃用窗口。修复重点Tape 记录的wp.copy()/wp.clone()/wp.array.assign()源数组被再次读取时梯度静默错误的问题[GH-1728] 类问题在tape.py与数组覆盖跟踪中修复verify_autograd_array_access误报修复并附带调用点文件/行号wp.utils.radix_sort_pairs()/segmented_sort_pairs()的多个 CUDA 图形捕获缺陷wp.empty()/wp.zeros()对带空洞的自定义 stride 布局的存储欠分配零步长切片在 Python 作用域、内核代码生成与内核运行时三个层面被拒绝三元表达式分支读取数组元素时的梯度错误wp.transform()无参/标量/关键字参数构造语义修正。自动微分与 Tape 的正确性演进自动微分autograd是 Warp 的核心卖点之一CHANGELOG 记录了大量梯度正确性修复构成了哪些写法安全的实践清单Tape 写入数组梯度清零1.13.0 破坏性变更tape.backward()现在会清零前向中被写入数组的梯度缓冲与 PyTorch 对中间梯度的行为一致需要检查梯度时用wp.array(..., retain_gradTrue)但仅当每个元素在前向中至多被写一次时使用多次调用backward()时须通过grads传入新的上游梯度。复制与赋值的梯度1.15.0/1.16.0/1.17.0修复了src_offset与dest_offset不同时wp.copy()的梯度、一维非连续数组stride 切片的 offset/count 语义、以及写入被覆盖目的地时的梯度传播。wp.autograd.gradcheck()/jacobian_fd()/jacobian()新增restore_inputs默认True在处理会修改数组输入的 Python 函数时自动恢复输入。三元表达式与复合组件写入修复arr[i] / term[i] if flag else arr[i]这类分支读取的梯度错误arr[i].y rhs、m[i][r, c] rhs、t[i].p v、state[i].position rhs等就地复合组件写入现在能正确传播梯度早期版本会静默丢弃。enable_backwardFalse语义jacobian()现在拒绝在模块或内核作用域禁用反向的核函数gradcheck_tape()跳过它们jacobian_fd()因只使用前向启动而照常工作。NaN 语义1.14.0wp.min()/wp.max()/wp.clamp()与原子 min/max 在浮点参数上采用 Cfmin()/fmax()的 NaN-as-missing 语义伴随与原子变体一致地将梯度路由到前向选中的操作数。wp.grad()1.11.0新增wp.grad()在函数、内核与自定义梯度中获取 Warp 函数的梯度wp.func_grad/wp.func_replay自定义梯度体系贯穿多个版本持续完善如 1.16.0 修复func_grad()使用wp.tile_matmul()时的KeyError: output_arch。动态循环的求导限制1.17.0 文档修正wp.func内动态循环的梯度可能错误正确做法是把循环累加器返回给调用内核并在那里执行导数依赖最终值的运算。实现层面Tape 位于 warp/_src/tape.py数组覆盖验证由wp.config.verify_autograd_array_access控制梯度调试工具集gradcheck/jacobian/jacobian_fd/gradcheck_tape集中在 warp/_src/autograd.py仓库测试 warp/tests/test_grad.py、warp/tests/test_grad_customs.py 与 warp/tests/test_tape.py 覆盖了上述绝大多数场景。确定性执行与原子操作1.15.0 引入确定性执行模式消除浮点原子操作引入的运行间差异进程级启用wp.config.deterministic模块级deterministic模块选项wp.DeterministicMode.RUN_TO_RUN保证同一 GPU 上逐位可复现wp.DeterministicMode.GPU_TO_GPU还追求跨 GPU 架构一致覆盖两类常见原子模式向数组元素累加值、用原子计数器分发唯一槽位索引并延伸至 Warp 为反向传播与自定义伴随生成的归约用于槽位分配的计数器无法在反向时自动重放Warp 会报错而非冒险放置梯度需提供自定义 replay 函数每线程记录上限可用wp.config.deterministic_max_records调大。相关实现与测试见 warp/_src/deterministic.py、warp/native/deterministic.cpp 与 warp/tests/deterministic设计文档在 design/deterministic-execution.md。1.16.0 还修复了切换模块deterministic模式后陈旧启动元数据导致消耗返回计数器原子执行两次或进程崩溃的问题。APIC 图形捕获CUDA Graph 与 .wrp 序列化Warp 的图形捕获graph capture能力经历了多阶段演进是性能敏感场景如仿真训练循环的关键1.8.0wp.capture_if()/wp.capture_while()支持 CUDA 图中的动态控制流wp.capture_debug_dot_print()输出 DOT 描述捕获图结构。1.10.0支持在 CUDA 图中记录/等待外部事件。1.13.0实验性图捕获序列化APIC与 CPU 重放——wp.capture_begin()/wp.capture_end()记录的操作可经wp.capture_save()序列化为.wrp文件wp.capture_load()从 Python 或独立 C 加载执行CPU 图捕获通过wp.capture_launch()重放新增wp.handle标量类型用于 mesh 句柄序列化。1.14.0破坏性.wrp格式升级以支持wp.indexedarray启动参数与包含数组的wp.struct参数旧文件必须重新捕获原生 APIC C/C 用户需将句柄改为显式指针类型如APICState*、APICGraph*。1.15.0实验性扩展 APIC 在 CPU/CUDA 上重放连续数组填充、扫描、排序、游程编码、受支持的稀疏 BSR 操作与wp.launch(..., record_cmdTrue)创建的可复用启动重放wp.capture_if()/wp.capture_while()创建的 CUDA 条件图节点与伴随启动。1.16.0实验性CPU 上实时捕获并重放wp.HashGrid.build()、wp.Bvh.refit()、wp.Bvh.rebuild()仅可重放wp.capture_save()无法保存APIC 捕获/重放wp.utils.array_sum()/array_inner()wp.capture_begin(..., apicFalse)时不再加载 APIC 实现修复宿主应用保留调用帧与大对象的问题。1.17.0 文档修正wp.capture_if()/wp.capture_while()的 CPU 捕获与apicTrue的 CUDA 捕获需要 Python 回调体CPU 图的wp.Graph.get_param_ptr()返回宿主地址.wrp文件保存的是 APIC 操作流而非预构建 CUDA 图。捕获模式由wp.CaptureMode/wp.ScopedCapture/wp.capture_begin()暴露1.14.0可选GLOBAL、THREAD_LOCAL默认与RELAXED控制捕获期间 CUDA 对不安全运行时调用的处理。实现见 warp/_src/capture.py 与 warp/_src/apic测试见 warp/tests/test_graph.py 与 warp/tests/cuda。Tile 编程模型从预览到系统性补强Tile 是 Warp 面向 block 协作计算的高层抽象1.5.0 通过 cuBLASDx/cuFFTDx 引入协作式 Tile 原语此后持续扩展线性代数wp.tile_cholesky()/tile_cholesky_solve()/tile_diag_add()1.6.0 预览→fill_mode上三角分解1.13.0→ 非 libmathdx 的协作式 GPU 回退1.14.0可用wp.config.enable_mathdx_solverFalse或模块选项强制→tile_lower_solve()的向量/矩阵右端项梯度1.16.0wp.tile_matmul()支持alpha/beta缩放1.11.0与enable_mathdx_gemm开关1.12.0并明确了仅支持实数浮点 Tile、拒绝bfloat16输出等边界。FFTwp.tile_fft()/tile_ifft()支持 N-D沿最后一维1.13.0CPU 与无 libmathdx GPU 回退1.14.0GPU 回退要求 2 的幂长度且可被block_dim整除。索引与切片1.16.0NumPy 风格切片t[2:6, :]、t[:, ::2]、t[::-1, :]、降维整数索引与负索引t[5, :]、t[-1, :]、切片赋值以及wp.tile_slice_indexed()沿单轴按 1D 整数索引 Tile 收集元素。数据搬运与归约tile_load/tile_store的 3D/4D 对齐与大元素类型加速与aligned参数1.13.0、2 GiB 数组的 64 位地址算术修复1.14.0、wp.tile_axpy()1.13.0、wp.tile_dot()1.13.0、tile_empty()跳过初始化1.14.0、tile_stack协作栈1.13.0、tile_scatter_masked()/tile_scatter_add()1.13.0、tile_from_thread()1.12.0、tile_full()与轴归约重载1.10.0、tile_scan_min/max_inclusive()1.11.0、tile_randi()/tile_randf()1.11.0、tile_squeeze()/tile_reshape()/tile_astype()1.8.0。结构体支持1.15.0wp.tile_map()处理结构体元素并广播非 Tile 结构体参数支持逐字段加/减、归约、原子加与梯度wp.tile_sort()前向以值负载重排结构体。查询wp.bvh_query_aabb_tiled()、wp.bvh_query_ray_tiled()、wp.mesh_query_aabb_tiled()等协作式并行查询1.11.0另有tile_*前缀别名以及wp.tile_query_valid()简化循环条件1.13.0。语义变化1.6.0 将tile_load/tile_store索引改为按数组元素而非Tile 倍数shape/offset 改为元组shape(m,n)、offset(i,j)属于破坏性变更1.12.1 起wp.func的 Tile 参数按引用传递对齐 Python 可变对象语义。Tile 的内核级实现集中在 warp/_src/codegen.py 与 warp/native/tile.h 系列头文件tile_matmul.h、tile_cholesky.h、tile_fft.h、tile_radix_sort.h等综合示例见 warp/examples/tile含example_tile_nbody.py、example_tile_walker.py、example_tile_mcgp.py与 asv 基准 asv/benchmarks/tile。编译管线、内核缓存与启动配置编译选项与内核属性wp.config.optimization_level1.11.0 起控制内核编译优化级别1.13.0 起作用于完整 CPU 编译管线默认-O2CUDA 默认-O3None与显式默认值不再触发重编译。wp.kernel(launch_bounds...)1.11.0映射 CUDA__launch_bounds__整数为maxThreadsPerBlock1-2 元组为(maxThreadsPerBlock, minBlocksPerMultiprocessor)。wp.kernel(grid_strideFalse)1.15.0去掉 grid-stride 循环以降低每线程开销与寄存器压力适合启动受限内核此时max_blocks 0会报错default_grid_stride模块选项与wp.config.default_grid_stride可全局设置。cluster_dim1.15.0与wp.get_cuda_max_cluster_dim()供wp.func_native使用 CUDA Thread Block Clusters。wp.get_suggested_block_size()1.13.0按占用率给出建议 CUDA 启动配置wp.block_dim()1.8.0在内核内查询当前 block 线程数。预编译头CUDA 侧默认启用1.11.0CPU 侧 1.13.0 起支持均由wp.config.use_precompiled_headers控制1.16.0 修复 LLVM 22 下不同cpu_compiler_flags的头文件隔离。wp.config.cpu_compiler_flags1.13.0控制 CPU 内核编译目标默认None时按运行时宿主 CPU 特性探测。模块加载与内核缓存wp.load_module()/wp.force_load()的max_workers并行编译加载1.11.0 起wp.config.load_module_max_workers控制默认值1.16.0/1.17.0 修复了并行加载导致的偶发缺内核、冷启动挂起与错误被吞掉的问题。内核缓存1.2.0 起按模块局部常量哈希、多进程共享缓存目录哈希子目录1.10.1 修复moduleunique内核的模块复用1.13.0 起自定义缓存路径包含 Warp 版本避免升级后陈旧工件干扰wp.clear_kernel_cache()清空缓存wp.config.kernel_cache_dir或WARP_CACHE_PATH指定位置Windows 无长路径支持时曾导致编译失败1.16.0 修复。编译跟踪wp.config.compile_time_trace或compile_time_trace模块选项输出 Trace Event 格式 JSON 到内核缓存可用chrome://tracing/查看。版本一致性1.15.0 起wp.init()在 Python 包与本地库warp.dll/warp-clang.dll等版本不匹配时报错而非警告。AOT 与 Docker 构建1.9.0 引入wp.compile_aot_module()/wp.load_aot_module()支持离线编译1.12.0 起 NVRTC 编译不再需要 CUDA 驱动可在 Docker 构建阶段产出 PTX/CUBINwp.config.cache_kernels启用时跳过已存在输出的重编译。1.17.0 修复了模块已带strip_hashTrue时load_aot_module()找不到二进制的问题省略参数不再把设置重置为False。测试见 warp/tests/aot。外部编译扩展、原生片段与 func_nativewp.func_native支持 CUDA 片段1.0.0-beta.51.4.0 增加返回类型提示支持1.15.0 增加wp.ref[T]参数注解标量/向量/矩阵/四元数/结构体按引用传递无需返回值即可在调用方存储上生效、wp.address_of(expr) - wp.uint64获取可寻址表达式裸指针以及adj_snippet手动伴随1.13.0 起 Tile 参数按引用传递。wp.Function类型参数1.15.0用户函数与wp.sin()/wp.min()等简单内建函数可作为函数目标从内核或其他函数调用含默认值。绑定函数到内核局部变量1.15.0f my_func、f module.my_func、wp.static(...)函数结果赋值、wp.grad(f)均支持重绑定到其他函数或非函数值会报错。wp.map()与wp.utils.create_warp_function()1.8.0/1.10.0 起支持多行 lambda1.15.0 修复换行包裹表达式、调用可缓存、跨进程稳定标识1.17.0。外部编译扩展1.17.0 的wp.ModuleBuildOptions/extra_build_options/wp.build_experimental.*见前文module_options字典参数1.13.0支持unique模块内联编译选项wp.kernel(moduleunique)1.7.0 起创建独立模块1.16.0 起工厂函数重复声明加速约 2×微基准。空间数据结构BVH、Mesh、HashGrid 与纹理BVH/Mesh 查询wp.bvh_query_ray()/bvh_query_aabb()/mesh_query_aabb()等核心 API 在 1.10.0 修复性能回归1.11.0 增加分组感知构造与查询groups参数、root查询参数、wp.bvh_get_group_root()/mesh_get_group_root()、mesh_query_ray_anyhit()、bvh_query_next()的max_dist、mesh_query_ray_count_intersections()与mesh_query_point_sign_parity()1.15.0 优化mesh_query_ray遍历先访问近子节点、复用节点负载、非平行射线快速 AABB 相交并修复轴对齐射线原点落在 slab 边界时漏交的问题1.17.0 的球/胶囊查询见前文。构造算法支持constructorsah/median/lbvh1.6.0与bvh_constructorcubql1.13.0/1.15.0 扩展。HashGrid0.5.0 引入点查询1.13.0 支持float16/float641.16.0 增加分组构建与查询groups参数 wp.hash_grid_query()尾部group参数限制遍历、reserve(..., with_groupsTrue)支持无预热在 CUDA 图中重建wp.HashGridQuery统一查询类型1.14.0废弃HashGridQueryH/HashGridQueryD。纹理1.12.0 新增wp.Texture1D/2D/3D与wp.texture_sample()硬件纹理采样、CUDA 互操作cuda_array句柄、wp.GLTextureResourceOpenGL 互操作、copy_from()/copy_to()1.15.0 实验性 mipmap 支持num_mip_levels、mip_filter_mode、lod参数1.17.0 修复 Hopper GPU 上优化 CUBIN 模块中纹理句柄跨 lane 变化的采样问题。体积NanoVDB 支持自 0.1.24 起持续演进1.16.0 增加可重建体积allocate_by_tiles(..., rebuildableTrue)/allocate_by_voxels(..., rebuildableTrue)/wp.Volume.rebuild()支持固定容量、可选点掩码、CPU 执行、CUDA 图形可捕获分配与重建示例见 warp/examples/fem/example_apic_fluid.py。互操作PyTorch、JAX、DLPack、Paddle 与第三方分配器PyTorchwp.from_torch()/wp.to_torch()自 0.1.8 起1.13.0 起支持零拷贝、梯度同步与自定义算子1.17.0 文档补充安全 Tape 集成零拷贝张量别名、外部梯度缓冲所有权、重复 backward、gradcheck、CUDA 流处理torch.autograd.Function案例记录在 warp/examples/interop。JAX0.6.3 起有from_jax/to_jax1.7.0 引入 JAX FFIwp.jax_kernel()/wp.jax_callable()1.10.0 起默认 FFI 实现1.12.0 支持jax.vmap()、has_side_effect标志与launch_dims1.14.0 弃用warp.jax_experimental迁往顶层warpAPIwp.JaxCallableGraphMode、graph_cache_max32默认、wp.JaxModulePreloadMode1.16.0 新增 CPU 端 FFI 支持按 JAX 选择的设备自动分发 CPU/CUDA与block_dim参数1.17.0 修复不同in_out_argnames/stage_in_argnames/stage_out_argnames下缓存包装器复用问题。DLPack0.6.3/0.14.0 两轮更新from_dlpack/to_dlpack布尔用kDLBool1.16.0 修复标准兼容 8 位布尔张量被拒绝。Paddle1.4.0 起支持互操作wp.from_paddle()等。分配器wp.Allocator协议 wp.set_cuda_allocator()/set_device_allocator()/wp.ScopedAllocator内置wp.utils.AllocatorRmm与 RMM 池共享1.13.0wp.CudaManagedAllocator()显式 CUDA 托管内存1.15.0wp.array.memory_kind检查宿主/钉扎宿主/CUDA 设备/CUDA mempool/托管内存mempool 系列 API0.14.0wp.is_mempool_supported()等。warp.fem 与 warp.sparsewarp.fem1.0.0-beta.1 引入的弱形式 PDE 框架支持 B 样条SquareBSplineShapeFunctions/CubeBSplineShapeFunctions1.12.0、Nédélec 与 Raviart-Thomas 向量值函数空间1.5.0、wp.float64几何精度1.13.0scalar_typewp.float64自动传播integrate()/interpolate()支持并行求积点求值与add累加、output_dtype默认改为几何标量类型1.13.01.14.0 增加多环境支持colocated 网格与 packed Nanogrid、环境感知查找、environment-first 空间划分1.15.0 支持原地装配bsr_options{construction: row_compress}降低峰值内存1.16.0 新增可重建 Nanogrid 拓扑刷新。warp.sparse0.10.0 引入 CSR/BSR1.15.0 增加行容量支持bsr_zeros(row_capacity...)、bsr_compress()、BSR_STATUS_*状态码、topologypadded/masked策略1.10.0 增加bsr_row_index()/bsr_block_index()内核级函数1.17.0 修复bsr_compress(topologycompact)将未用尾部存储当作活动块的问题。迭代求解器warp.optim.linear的 CG/CR/BiCGSTAB/GMRES1.0.0-beta.7 起1.14.0 增加批量输入batch_offsets与可复用求解器 functorrunFalse预分配临时缓冲支持 CUDA 子图1.16.0 用分段树归约改善点积精度新增max_batch_length参数跳过冗余归约层级1.17.0 增加restart参数并修复check_every0时的迭代计数。Adam/SGDwp.optim.Adam0.5.0、wp.optim.SGD1.0.0-beta.11.16.0 修复set_params()保留兼容状态float16参数、跨设备迁移。平台、工具链与构建CUDA0.1.24 升 CUDA 11.3 → 1.3.0 默认 CUDA 12.x → 1.8.1 起要求 CUDA 12.x → 1.9.0 支持 CUDA 13、移除 CUDA 11 → 1.10.0 恢复 Maxwell/Pascal/Volta 等旧架构支持build_lib.py --use-dynamic-cuda1.14.0与--no-cuda1.12.0、--sanitizename1.14.0AddressSanitizerbuild_lib.py --sanitizeaddress报告heap-buffer-overflow、--standalone0.8.0、CLI 参数统一 kebab-case1.11.1。LLVM从 0.9.0 起 CPU 默认独立 LLVM 编译器1.1.0 升级 18.1.31.17.0 升级嵌入式 Clang/LLVM 至 22.1.8Clang/LLVM SDK 下载从 NVIDIA 包服务器切至 GitHub Releases 并校验固定校验和1.17.01.13.0 起 CPU JIT 链接器默认 RTDyld→JITLinkwp.config.legacy_cpu_linker回退macOS 符号导出限制1.17.0。平台Linux/macOS 0.1.18/0.1.15 起Linux AArch641.0.0-beta.6含 JetsonApple Silicon 支持、Intel macOS 弃用并移除1.10.0Windows ARM64 原生构建1.17.0CPU 内核CUDA 暂不支持Windows 无长路径支持的缓存位置问题1.16.0 修复。构建1.15.0 增加可选 CMake 源码构建Packman 管理依赖Linux 源码构建需Python.h1.14.0 破坏性变更wp.float16快路径 C 扩展--msvc_path、--llvm-path等构建参数细节见 build_lib.py。诊断wp.print_diagnostics()输出构建与运行环境快照1.12.0wp.get_cuda_toolkit_version()/wp.get_cuda_driver_version()wp.cuda_profiler_start()/stop()/wp.ScopedCudaProfiler1.16.0对应cuProfilerStart/Stop实现见 warp/_src/context.pywp.config.line_directives生成#line指令支持 Nsight Compute 的 Python/SASS 关联1.7.0。日志与配置系统1.14.0 引入可插拔日志自定义 logger实现debug/info/warning/error经wp.set_logger()设置或wp.ScopedLogger临时作用域wp.Logger文档化该接口wp.config.log_level控制全局阈值wp.ScopedLogLevel临时调整wp.config.verbose/quiet弃用读写在窗口期内工作并发出一次DeprecationWarning修复了 Warp 警告覆盖用户warnings.filterwarnings()过滤的问题。实现见 warp/_src/logger.py 与 warp/_src/config.py测试见 warp/tests/test_logger.py。破坏性变更与迁移速查以下为 CHANGELOG 中标注Breaking或移除的条目汇总升级时需重点核对版本变更迁移方式1.17.0移除标量→复合类型隐式转换显式构造wp.mat22(123)等1.17.0移除Texture.copy_from_array/to_array用copy_from()/copy_to()1.15.0wp.copy()严格校验 offset/countwp.init()版本不匹配报错传合法整数保证原生库与包同版本1.14.0.wrp格式变更PicQuadrature/make_space_partition位置参数重排重新捕获按关键字传requires_grad/device/temporary_store1.13.0tape.backward()清零写入数组的梯度移除 Python 3.9需要时用retain_gradTrue用 Python 3.101.13.0移除私有 API 转发层使用warp命名空间的精选公共 API1.10.0移除warp.sim移交 Newton 库移除 Python 作用域 list/tuple 传参移除 Intel macOS用 Newton显式类型构造器1.7.0移除 CUTLASS 依赖与wp.matmul()使用 Tile 原语1.6.0Tile 索引按数组元素、shape/offset 用元组更新调用代码0.14.0wp.matmul()不再接受 device 参数从数组推断设备此外wp.constant自 0.8.0 起可直接以真实类型使用.val不再支持0.3.1 起默认优先使用 CUDA 设备、cuda别名指向当前 CUDA 上下文。结语用 CHANGELOG 作为升级与选型的地图CHANGELOG.md不仅是变更流水账更是 Warp 能力图谱空间查询、Tile 线性代数、确定性执行、APIC 捕获、外部编译扩展与互操作层在版本间持续迭代每个条目都能在 warp/_src 与 warp/tests 中找到对应实现与测试。升级时建议按本文的破坏性变更速查表逐项核对新功能则优先参考仓库内的 warp/examples 与 asv/benchmarks 中的对应示例与基准设计层面的取舍确定性执行、统一日志、可插拔分配器等可进一步阅读 design 目录下的设计文档。【免费下载链接】warpA Python framework for GPU-accelerated simulation, robotics, and machine learning.项目地址: https://gitcode.com/GitHub_Trending/warp/warp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考