IB 原生 RDMA 与 以太网卡 + RoCE 对比
1. IB 原生 RDMA 方案(InfiniBand 网卡)
IB = InfiniBand,是一种高速、低延迟、高带宽的数据中心互连技术,原生支持 RDMA,无需额外协议封装。
典型带宽:40Gbps、100Gbps、200Gbps 及更高。
主要应用于 高性能计算(HPC)、人工智能训练集群、分布式存储 等对延迟和吞吐极度敏感的场景。
常见 IB 网卡型号:
Mellanox ConnectX-6 (CX6)
Mellanox ConnectX-7 (CX7)
NVIDIA BlueField 系列 DPU(带 IB 接口)
优势:
原生 RDMA:直接在节点间读写内存,绕过 CPU,延迟可达微秒级。
带宽利用率极高,吞吐稳定。
在 HPC、A...
云防火墙 与 WAF 产品上的区别
云防火墙(Cloud Firewall)和 WAF(Web Application Firewall)都属于网络安全产品,但防护层级和保护对象不同,经常作为互补方案同时部署。
一、云防火墙(Cloud Firewall)
定义
云防火墙是部署在云上的网络边界安全产品,相当于传统硬件防火墙的云化形态,用于保护云环境整体的网络流量。
主要功能
网络访问控制(ACL / 安全组增强)
状态检测、防入侵(IDS/IPS)
DDoS 防护(部分集成)
NAT、VPN 管理
跨 VPC 的东西向流量可视化与控制
出入口(南北向)及内网(东西向)防护
保护对象
云服务器实例(ECS)
子网/VPC 整体网络
非 Web 应用(数据库、SSH、...
lambda 与 bind ,类与模版
Lambda 底层:编译器生成闭包类
Lambda 不是模板,而是编译器生成的类
每个 lambda 表达式,编译器都会自动生成一个匿名的类(闭包类型),这个类重载了 operator()。
// 你写的 lambda
auto lambda = [x, &y](int a) -> int {
return x + y + a;
};
// 编译器实际生成类似这样的类
class __lambda_123 { // 编译器生成的匿名类名
private:
int x_; // 按值捕获的 x
int& y_; // 按引用捕获的 y
public:
// 构造函数:初始化捕获的变量
__la...
boost::bind 参数量限制与现代 C++ 替代方案
boost::bind 参数量限制与现代 C++ 替代方案
问题背景
在维护老代码时,遇到了一个使用 Boost 1.63 版本的 boost::bind 的问题:发现该函数无法传入超过 9 个参数(包括 this 指针)。这个限制其实是 C++03 时代的历史遗留问题。
根本原因:C++03 的”转发问题”
在 C++03 时代,由于缺乏可变参数模板和完美转发机制,boost::bind 面临一个被称为”转发问题”(forwarding problem)的根本性限制。
转发问题的本质
C++03 中,模板函数的参数通常写成 T&(非 const 左值引用)来”原样传递”对象,但这样的写法无法接受右值(临时对象、字面量):
template<class T&...
广告展示的”随机“选择:三种算法的深度对比
在互联网广告投放、负载均衡、A/B测试等场景中,我们经常需要按照预设权重从多个选项中进行选择。本文将深入探讨三种不同的加权随机选择算法,并通过大规模模拟实验对比它们的性能表现。
问题背景
假设我们有4个广告,权重分别为2、3、4、5,需要每次展示2个不同的广告。看似简单的需求,实际上涉及到几个关键问题:
如何确保长期展示比例符合权重设定?
如何处理”不重复选择”带来的概率分布变化?
在需要结果可重现的场景下,如何实现确定性选择?
理论分布的计算
简单权重 vs 不重复选择
首先需要理解一个重要概念:当我们进行不重复选择时,实际的概率分布会与简单权重比例有所不同。
简单权重比例(假设每次选择独立):
Ad0: 2/14 = 14.29%
Ad1: ...
GPC(General Polygon Clipper)多边形布尔运算库
概述
它最初由 Alan Murta 在曼彻斯特大学开发。
官方主页:Alan Murta’s GPC page
Key operations supported:
Difference (A-B)
Intersection (A∩B)
Exclusive-or (A⊕B)
Union (A∪B)
算法特点
扫描线算法(Sweep Line):
预处理阶段 Inital Validation:
检查简单的空结果情况
使用边界框测试优化(minimax_test)识别潜在的轮廓
构建局部最小值表(LMT):
为主体(subject)和裁剪(clip)多边形构建LMT
对于...
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. 三角形最适...
共计 128 篇文章,16 页。