上一页 1 2 3 4 5 6 ··· 10 下一页
摘要: 在 C++ 中,指针(Pointer)和引用(Reference)都用于间接访问变量,但是它们在语法和语义上都有显著的差异。指针是一个变量,它可以保存另一个变量的内存地址;引用是另一个变量的别名,由编译器进行处理,使用时与使用原变量无异。 指针和引用使用的一些差异如下: 初始化 指针:可以先定义后赋 阅读全文
posted @ 2025-10-08 09:44 木杉的园子 阅读(80) 评论(0) 推荐(0)
摘要: 跳表(Skip List)是一种用于查找的类似于链表的数据结构,是对有序链表的改进,能够在 \(O(\log{n})\) 时间内完成增加、删除、查找操作。跳表相比于树堆与红黑树,其功能与性能相当,并且跳表的代码长度相较下更短。 1. 什么是跳表 跳表包含多个层级,每个层级包含一个有序的短链表。在跳表 阅读全文
posted @ 2025-10-04 20:52 木杉的园子 阅读(75) 评论(0) 推荐(0)
摘要: 字典树(Trie)是一种树形数据结构,主要用于高效地存储和检索字符串集合。它通过利用字符串的公共前缀来节省存储空间,常用于词典查询、自动补全等场景。 1. 什么是字典树 字典树的每条边代表一个字符,从根节点到某一节点的路径表示一个字符串。如果某节点被标记为结束节点,则表示该路径对应的字符串存在于集合 阅读全文
posted @ 2025-10-04 18:02 木杉的园子 阅读(46) 评论(0) 推荐(0)
摘要: 在实现二叉树遍历时,使用递归的方式是比较直观的方式。然而递归依赖系统调用栈,一方面在树深度很大时可能导致栈溢出,另一方面在工程实践中往往需要更灵活的控制方式。于是,非递归遍历成为一种必要补充:通过显式地维护栈或队列来模拟递归过程,从而在不依赖系统栈的情况下完成遍历。本博客将介绍一些非递归的方式实现二 阅读全文
posted @ 2025-09-28 15:16 木杉的园子 阅读(144) 评论(0) 推荐(0)
摘要: 当缓存容量固定时,我们需要一种淘汰策略:每次访问把数据标记为“最近使用”,当容量满了时淘汰“最久未使用”的那个,以提升缓存命中率。这就是 LRU 的核心。 以下是一个使用 C++ 实现的 LRU Cache 模版,拥有以下特性: 使用 std::list 维护一个缓存列表,头部的缓存块为最近使用的、 阅读全文
posted @ 2025-09-03 17:02 木杉的园子 阅读(91) 评论(0) 推荐(0)
摘要: llama.cpp 是使用 C/C++ 编写的高性能推理框架,没有外部依赖,因此可以跨平台快速部署。并且,llama.cpp 还支持多种硬件平台上的计算库,包括 Metal、BLAS、CUDA、Vulkan、CANN 等,以加速模型的推理。此外,llama.cpp 还支持多种量化方案以加快推理速度并 阅读全文
posted @ 2025-08-28 16:21 木杉的园子 阅读(2526) 评论(0) 推荐(0)
摘要: GNU 工具和 RealView 编译工具(RVCT)的最新版本均支持 NEON 指令。 1. NEON Assembler 使用 NEON 单元最直接的方式是编写汇编代码。GNU 和 RVCT 汇编器采用相同的指令格式,但是存在一些差异,包括:汇编器指示(assembler directives) 阅读全文
posted @ 2025-08-22 16:58 木杉的园子 阅读(267) 评论(0) 推荐(0)
摘要: ARMv7 架构引入了 Advanced SIMD 作为 ARMv7-A 和 ARMv7-R 架构的可选扩展。它通过定义对存储在 64 位 D(双字)寄存器和 128 位 Q(四字)向量寄存器中的向量进行操作的指令组,扩展了 SIMD 概念。ARM 处理器中使用的高级 SIMD 扩展实现被称为 NE 阅读全文
posted @ 2025-08-22 16:57 木杉的园子 阅读(323) 评论(0) 推荐(0)
摘要: 编写或生成 SVE 代码由几种方法: 编写 SVE 汇编代码; 使用 SVE intrinsics 进行编程; 自动向量化; 使用 SVE 优化的库。 下面我们将详细介绍这四种方法。 1. 编写 SVE 汇编代码 我们可以在 C/C++ 代码中以内联汇编形式编写 SVE 指令,或在汇编源文件中编写完 阅读全文
posted @ 2025-08-22 15:50 木杉的园子 阅读(440) 评论(0) 推荐(0)
摘要: ARM 可扩展向量扩展(Scalable Vector Extension,SVE)是继 Neon 之后的 SIMD 扩展。SVE 允许在 CPU 实现中采用灵活的向量长度,其取值范围可从最小 128 位至最大 2048 位,但必须是 2 的幂次。因此有效的向量长度实现为 128、256、512、1 阅读全文
posted @ 2025-08-22 15:48 木杉的园子 阅读(695) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 10 下一页