avatar
文章
57
标签
111
分类
10
文章
归档
分类
关于
Logo何榜文
文章
归档
分类
关于

何榜文

Effective STL - 01 - Containers
发表于2024-03-17|Effective STL
Containers条款 1 仔细选择你的容器 vector是一种可以默认使用的序列类型,当很频繁地对序列中部进行插入和删除时应该用list,当大部分插入和删除发生在序列的头或尾时可以选择deque这种数据结构 连续内存容器(也叫做基于数组的容器)在一个或多个(动态分配)的内存块中保存它们的元素。如果一个新元素被查入或者已存元素被删除,其他在同一个内存块的元素就必须向上或者向下移动来为新元素提供空间或者填充原来被删除的元素所占的空间。这种移动影响了效率(参见条款5和14)和异常安全(就像我们将会看到的)。标准的连续内存容器是vector、string和deque。 基于节点的容器在每个内存块(动态分配)中只保存一个元素。容器元素的插入或删除只影响指向节点的指针,而不是节点自己的内容。 你要把迭代器、指针和引用的失效次数减到最少吗?如果是,你就应该使用基于节点的容器,因为在这些容器上进行插入和删除不会使迭代器、指针和引用失效(除非它们指向你删除的元素)。一般来说,在连续内存容器上插入和删除会使所有指向容器的迭代器、指针和引用失效。 你需要具有有以下特性的序列容器吗:...
使用zerotier实现免费上网
发表于2024-03-14
原理本文提到的操作需要使用一台机器进行中转,这个机器可以是服务器,也可以是自己工位上的 Windows 机器。同时,这个机器上还必须打开了 Clash、V2Ray、SSR 之类的代理,并拥有一个端口号。 基本原理:假设我们在宿舍有一台笔记本,称为 Alice,简称为 A;在工位上有一台电脑,称为 Bob,简称为 B。A 只能访问校园网的网站,例如 csu.edu.cn;B 能够访问互联网,例如 baidu.com。那么,如果我们能够实现 A 的 https 请求通过 B 进行转发,然后再由 B 转发回 A,也就实现了让 A 上网。如图, 从密码学角度来想,Bob 就是 Alice 和 Internet 的中间人,它可以获取二者通信的所有内容,所以我们要保证 Bob 一定是可信的。如果 Bob 不可信,我们还可以通过 https 进行通信,https 的所有信息都是被加密过的,如果 Bob 没有解密私钥,他就无法窃取机密信息。如何进行私钥分发,保证私钥的隐私性和不篡改性?一般是通过第三方的公证机构,所以 https 的认证证书是收费的。 要实现以上的连接,我们需要两个工具: 实...
llama2
发表于2024-03-13
LLaMa2Transformer IntroductionArchitecturetransformer 最主要的结构就是这张图: 在纯 Encoder 或者纯 Decoder 的架构中,会变成只有左边的 transformer block 的结构,但是区别在于 Multi-Head Attention 是否存在 mask。Encoder-only 架构为了获取每一个 token 的完整上下文,因此没有对应的 mask;Decoder-only 架构为了让每一个 token 只能注意到它前面的 token,因此会存在一个从前往后的 mask,即生成的 $QK^T$ 矩阵(shape 为 $n_{tokens} \times n_{tokens}$)是一个下三角阵。 llama2 的 QK^T 矩阵注意力输出,Decoder 架构,因此是一个下三角阵 Encoder-DecoderTransformer-based Encoder-Decoder Models Transformer 是 Encoder-Decoder 结构的一种,这是为了解决在 NLP 中输入和输出长度不...
侯捷CPP-STL
发表于2024-03-13
课件截图容器 list list 是一个双向链表,如果需要写一个 MyList ,那就可以参考 list 的写法。 注意到这里的 bidirectional_iterator_tag ,这表明 list 的迭代器是一个双向迭代器,只支持图中展示的四个操作。但是 vector 的迭代器是 RandomAcessIterator ,可以支持随机访问,因此能够使用 std::sort ,而不需要本身带有一个 sort 函数。 在之前的黑马程序员里也讲过这个编译器优化案例。 list 的迭代器在 2.9 和 4.9 中存在一定的不同,2.9 中的指针类型和引用类型都是不固定的,可以任意指定,但是 4.9 中的都与数据成员 _Tp 一致。同时,指针类型也通过继承实现了自带的 next 和 prev 。(可以用于以后的实现) 但是目前 MSVC 的实现并不一样,而是使用了一个 Node_Ptr ,其等于 typename pointer_traits<type-parameter-0-1>::template rebind<_List_node<_Value...
Caffe2 中 float32 与 float16 的转换
发表于2024-03-12
generated by Copilot and translated by DeepL 这段 C++ 代码是一个名为 cpu_float2half_rn 的函数,用于将单精度浮点数(32 位)转换为半精度浮点数(16 位)。该函数将浮点数作为参数,并返回一个 float16 对象。转换过程涉及多个步骤,包括处理 NaN 和无穷大等特殊情况,从输入中提取符号、指数和尾数,以及四舍五入到最接近的偶数。 函数首先声明了一个 float16 对象 ret,用于保存转换结果。然后使用 static_assert 来确保无符号 int 和 float 的大小相同。这一点很重要,因为函数使用位操作来处理 float 的二进制表示,这需要将 float 解释为无符号整数。 函数使用 reinterpret_cast 获得指向 float 二进制表示形式的指针。然后创建该二进制表示的副本,屏蔽符号位,得到浮点数 u 的绝对值。 函数会处理特殊情况。如果 u 大于 0x7f800000,输入值为 NaN,函数会将结果设置为特殊的 NaN 值并返回。如果 u 大于 0x477fefff 或小于 ...
ORT 模型部署
发表于2024-03-12
Deploy ORT modelonnxruntime-inference-examples/mobilenet.ipynb at main · microsoft/onnxruntime-inference-examples 详细记录YOLACT实例分割ncnn实现 真正部署模型,不应该把后处理包括在模型推理中,这会影响模型在GPU上的部署,性能也不一定会好。这里的后处理,不仅仅是model(input) 之后的,也可以是作者放在模型推理过程中,但是实际上可以归为后处理的部分。 判断函数是否在ONNX trace的过程中:torch.onnx.is_in_onnx_export() 。 ONNX to TF Torch to ONNX torch不支持F.grid_sample 算子。从ONNX支持的算子列表来看,opset=16 时,可以直接使用grid_sampler 而不需要手动设置符号函数。 12345678910111213141516171819202122232425262728# https://github.com/pytorch/pyt...
MNN GPU float16 使用原理
发表于2024-03-11
我观察到 MNN 在使用 GPU OpenCL 时,会默认使用 float16 的格式,导致模型评测时时间不同,如图。因此查看了 MNN 的源码,发现了一些有趣的东西。 MNN 使用 MNN::BackendConfig::Precision_Low 时,会根据 GPU 的实际情况判断是否使用 float16 的数据格式。代码随附。 当导出的模型可以使用 float32 或者 float16 保存,当权重转换到 GPU 上时,会转换格式,在代码的第19行到第22行。代码随附。 Pipeline 中保存的 tensor 指向的 opencl buffer 保存的还是 float16。但是 OpenCL::onMapTensor 和 OpenCL::onUnmapTensor 的实现保证了映射前后得到的是 float32。OpenCLBackend::onAcquire 给出了 tensor 中保存的 buffer 格式,其中调用了 isSupportedFP16 判断目前是否支持 float16,如果支持则使用 float16 的大小创建 buffer。 OpenCLBacken...
1…56
avatar
何榜文
端侧 AI 推理、算子优化与论文细读的记录。
文章
57
标签
111
分类
10
Follow Me
公告
One week is 2% of a year
最新文章
给 DeepSeek Harness 写一个插件:把 Magpie 的用量摊在侧栏里2026-11-10
π0.5 与 MM-DiT:都是 joint attention,差别在谁看得见谁2026-11-09
OpenCode Go 订阅一周用量复盘:月费 ¥68 能跑出多少 token2026-11-08
Qwen4 架构全解:把参数从显存里搬出去2026-11-03
Jetson 全系参数横评:从 Orin Nano 到 Thor T50002026-11-02
分类
  • AI3
    • Deep Learning3
  • AI 系统10
  • Effective STL6
  • 技术分析1
  • 硬件1
  • 系统编程1
  • 综合实践2
标签
深度学习 VLA Magpie 架构 Qwen2.5-VL 交叉编译 clip onnxruntime-genai 数值精度 高通 NVIDIA ExecuTorch 推理框架 ViT 边缘推理 HuggingFace Vision Encoder π0.5 glibc DeepSeek Harness LLM ONNX Runtime 综述 Benchmark 成本分析 GLM RKNN 加载器 ncnn TPU-MLIR 多模态大模型 端侧推理 性能优化 Functor onnxruntime TTS bing-search-api DeepSeek video summarization Jetson
归档
  • 十一月 2026 5
  • 六月 2026 4
  • 五月 2026 6
  • 四月 2026 2
  • 三月 2026 8
  • 七月 2025 1
  • 六月 2025 5
  • 四月 2025 1
网站信息
© 2025 - 2026 By 何榜文框架 Hexo 7.3.0|主题 Butterfly 5.5.4