跳转至

2025

torch_memory_saver高性能CUDA内存管理工具实现

torch_memory_saver是一个开源的高性能CUDA内存管理工具,主要功能是允许暂停和恢复PyTorch张量的CUDA内存占用。保持用户使用的虚拟地址不变,暂停后释放显存,恢复重新分配显存,绑定到虚拟地址上。

本文会介绍核心原理,以及拦截CUDA runtime API的实现。你还可以看到如何实现一个python c++扩展。在sglang大模型推理库中也有使用到这个torch_memory_saver库。

LLM推理:采用投机采样加速推理[译]

推测解码

关于投机采样是什么这里就不赘述了,参考这篇大佬的文章大模型推理妙招—投机采样(Speculative Decoding),解释的很清晰。

vllm框架对投机采样(Speculative Decoding)进行了支持, 见spec_decode

投机采样也可以翻译为推测解码,我觉得推测解码会更加容易理解一些,下文采用推测解码。

推测解码是一种推理优化技术,它在生成当前Token的同时,对未来的Token进行有根据的猜测,这一切都在一次前向传播中完成。它融入了一种验证机制,以确保这些推测出的Token的正确性,从而保证推测解码的整体输出与普通解码的输出相同。优化大语言模型(LLMs)的推理成本,可以说是降低生成式人工智能成本并提高其应用率的最关键因素之一。为了实现这一目标,有各种推理优化技术可用,包括自定义内核、输入请求的动态批处理以及大型模型的量化。

C++技法:iguana序列化库中如何实现enum reflection反射

我们知道通过反射可以在运行时获取类名、类型等一些信息,然而c++语言本身没有提供类似java这种反射机制。在阅读iguana开源库时,看到了一种EnumRefection的实现,分享给大家。

iguana 是C++17 实现的header only、跨平台、高性能易用的序列化库,包括xml/json/yaml 的序列化和反序列化。

MPI是什么?有哪些集体通信操作以及在TensorRT LLM中应用

MPI介绍

MPI(Message Passing Interface,消息传递接口)是一种‌并行计算的通信标准‌,主要用于在分布式内存系统中实现多进程间的数据交换和协同计算。它是高性能计算(HPC)领域的核心工具之一,尤其适用于超级计算机和集群环境。MPI是独立于硬件和编程语言的规范,主流实现(如OpenMPI、MPICH)支持C/C++、Fortran等语言,可在Linux、Windows等系统运行。

rust使用:Arc new_cyclic 构建自身的弱引用指针

Arc new_cyclic 构建自身的弱引用指针

创建一个新的Arc<T>,同时为你提供对分配的Weak<T>,以便你构建一个持有对自身弱指针的T。 通常,直接或间接循环引用自身的结构不应持有对自身的强引用,以防止内存泄漏。使用此函数,你可以在T初始化期间(在Arc<T>创建之前)访问弱指针,以便你可以克隆并将其存储在T内部。