valhalla 算路引擎
基于openstreetmap数据的算路引擎,括路径规划、等时线计算、高程采样、地图匹配和旅行优化
核心特性
Tiled Hierarchical Data Structure: Allows for small memory footprint on constrained devices, enables offline routing, and provides a means for regional extracts and partial updates. 支持在资源受限设备上使用较小内存,便于离线路由,并支持区域提取与局部更新。
Dynamic Runtime Costing: Edge and vertex costing via a plugin archite...
渲染为什么需要三角化:渲染管线的最小单位
在图形渲染领域,有一个不成文的共识:一切几何,最终都要变成三角形。
无论你在建模时使用的是曲面、N边形、多边折线还是Bezier曲线,到了 GPU 渲染阶段,都会经历一个不可或缺的步骤——三角化(Triangulation)。
这篇文章将带你理解:为什么渲染一定要三角化?有哪些主流三角化算法?OpenGL 又是如何处理三角形的?
一、为什么渲染必须三角化?
1. 三角形是最稳定的平面单位
任意三个不共线的点,唯一确定一个平面。
多边形(如四边形)如果顶点不共面,就可能出现 扭曲 或 不确定面方向。
三角形天然“平”,不管顶点位置如何,都不会在图形管线中引起数学歧义。
稳定性意味着更少的渲染bug、更容易进行裁剪、光照、纹理插值等操作。
2. 三角形最适...
bsdiff 二进制diff库
简介
提供两个文件的 binary diff 的patch 补丁
Patch 的数据结构
Control Data: 补丁过层指导
Diff Data: 新旧两个版本文件的差异
Extra data:在新文件里完全没有的data
基于stream的设计
通过stream来抽象 io 操作,方便在多种环境(实测linux server, android,ios设备都有一致性, server打出来的patch 可以直接在端上merge)
二进制diff算法
Suffix Array Generation 后缀数组
针对于 老文件,进行 利用 qsufsort 进行排序,实际上就是产出一份方便匹配的数据
为每个字节值创建桶(0-255)
计算每个字...
spdlog 和 GLOG 的核心区别
spdlog 和 GLOG 的核心区别
维度
GLOG (Google Logging)
spdlog
项目起源
Google 内部老项目(2000年代初)
轻量、高性能现代日志库(C++11以后)
库大小
很重、依赖复杂(GFLAGS、线程库)
单头文件版也有,非常轻量
初始化
必须全局初始化(InitGoogleLogging)
直接即用,支持单独 logger、多 logger
依赖
gflags、pth...
tippecanoe 地图网格切分工具
Tippecanoe 是一个命令行工具,用于从大型地理空间数据集构建矢量瓦片集。其主要目的是实现尺度无关的可视化,在所有缩放级别上保留原始数据的密度和细节,
简化(RDP)、索引(R-Tree)、裁剪(Clipping)、投影(Mercator)、合并(Union)等
概述
结构
1. 命令行工具
tippecanoe:主要工具,用于生成矢量瓦片
tile-join:用于合并瓦片和连接 CSV 属性的工具
tippecanoe-decode:将矢量瓦片转换回 GeoJSON 的工具
tippecanoe-json-tool:用于操作 GeoJSON 的实用工具
tippecanoe-enumerate:列出 MBTiles 文件中的瓦片
2. 核...
sglang 对 DeepSeek的 MLA的矩阵乘 load阶段融合的优化
主要优化点
PR标题:
Fuse q_a_proj and kv_a_proj for DeepSeek models
动机(Motivation):
在 DeepSeek V3 模型的 Self-Attention 结构中,
q_a_proj(query after attention projection)和 kv_a_proj(key-value after attention projection)都以同一个 hidden state 作为输入。
因此可以把它们合并为一个模块,
这样:
只需要 一次 DeepGemm 调用(矩阵乘),
减少了一次 kernel launch 开销,
提升整体推理速度。
具体修改(Modifications)
...
当我们在sft的时候发生了什么
1. SFT 微调概述
SFT(Supervised Fine-Tuning)指的是在大模型预训练完成后,使用人工标注的 (prompt, response) 对,进行标准监督学习训练,
目的是引导模型输出符合特定任务要求的响应。
输入/输出定义
输入 ( x ):Prompt(指令)
输出 ( y = (y_1, y_2, \ldots, y_T) ):Response 的 token 序列
2. SFT 训练流程(带公式)
2.1 目标函数(Objective)
SFT 训练的目标是:
最大化在已知输入 Prompt ( x ) 条件下,生成正确 Response ( y ) 的概率。
换句话说,最小化负对数似然(Negative Log-Likeli...
dragonflyDB 和redis的区别与定位
DragonflyDB 和 Redis 主要区别有这些:
方面
Redis
DragonflyDB
架构
单线程(IO多路复用 + pipeline优化)
多线程(基于”shared-nothing”并行架构,线程间无锁)
性能
单核极限高,但多核扩展性一般
原生支持多核扩展,吞吐量更高(官方称同硬件上可以比 Redis 高 25x)
内存管理
自己管理内存(jemalloc优化)
自研内存模型(基于 Small-Object Arena + Slab ...
共计 130 篇文章,17 页。