C++高性能并行编程与优化 - 课件 - 10 从稀疏数据结构到量化数据类型element),反之则是未激活 (inactive)。 这就是稀疏的好处,按需分配,自动扩容。 分块则是利用了我们存储的数据常常有着空间局域性的特点,减轻哈希表的压力,同时在每个块内部也可以快乐地 SIMD 矢量化,CPU 自动预取之类的。  传统稠密二维数组 区间内的正数,非常方便。  ## 对稀疏数据结构造成的问题 - 如果这里的 x 是负数,则 x % B 也是负数,会造成对 m block 的越界访问。 - 因此 % 会返回负数对 CFD 用户来说是个很大的坑点,很多人想当然地用 % 做循环边界,然而这对负方向会不起作用。 的整除运算 a // b 的值始终是向下取整,非常方便。 >>> -7 // 4 -2 >>> 7 // 4 1 >>> ## 对稀疏数据结构造成的问题 - 也就是说,如果 x 是 [-3,0] 则 x/B 会是 0,如果 x 是 [0,3] 则 x/B 也是 0。导致两个同时跑到一个 block 上去,会出错。 void write(int0 码力 | 102 页 | 9.50 MB | 2 年前3
5_刘欣_Python在量化投资领域的应用9043c7b635da4bafc51c4c907686/p1_2.jpg) ## Python在量化投资领域的应用 ## 以澎博真格量化平台为例 刘欣 ## 目录 >> 关于澎博财经 >> Python量化平台应对问题 >> Python量化平台愿景 ## 1 关于澎博财经 中国金融市场的交易技术先行者, 提供期货、股票、期权交易系统解决方案, |锁定解锁||||||||| |组合|查询|||||||| ## 关于澎博财经-真格量化 ## 量化,我们来「真格」的! 一 真格量化 期货期权 实盘量化平台 一 泰德财经旗下 泰易大师 汇点财富 研发团队出品 真实的实盘策略 (部分公开票码) 商品持仓排名策略 商品期货双均线策略 查看详情 查名详情 澎博财经真格量化平台 期权卖跨市套利 ID:10372  ## 别名 - 指向相同的可变数据结构的两个标识符可以看作是别名 1. fn alter(a: Ref[Int], b: Ref[Int]) { 2. a.val = 10 3. b.val = 20 4. } 5. : 1 } 8. alter(x, x) 9. println(x.val.to_string() // x.val 的值将会被改变两次 10. } ## 别名 - 指向相同的可变数据结构的两个标识符可以看作是别名  - Int View No quick fixes ## 可变数据 • 使用场景广泛 ☐ 直接操作程序外环境,如硬件等 ☐ 一些情况下性能更好,如随机访问数组等 ☐ 可以构建部分复杂数据结构,如图 ☐ 重复利用空间(原地修改) - 可变数据并不总是与引用透明性冲突 1. fn fib_mut(n: Int) -> Int { // 对于相同输入,总是有相同输出 2.0 码力 | 23 页 | 780.46 KB | 2 年前3
Design and Implementation of Highly Scalable Quantifiable Data Structures in C++0 码力 | 51 页 | 4.08 MB | 1 年前3
vLLM v0.4.1 Documentation0 码力 | 101 页 | 894.09 KB | 3 月前3
TVM Meetup: Quantization0 码力 | 19 页 | 489.50 KB | 1 年前3
2022年美团技术年货 合辑亿万生活 ## 目录 算法 YOLOv6:又快又准的目标检测框架开源啦 目标检测开源框架 YOLOv6 全面升级,更快更准的 2.0 版本来啦 通用目标检测开源框架 YOLOv6 在美团的量化部署实战 7 次 KDD Cup&Kaggle 冠军的经验分享:从多领域优化到 AutoML 框架 图神经网络训练框架的实践和探索 图技术在美团外卖下的场景化应用及探索 大规模异构图召回在美团到店推荐广告的应用 未来我们会持续建设和完善 YOLOv6 生态,主要工作包括以下几个方面: 1) 完善 YOLOv6 全系列模型,持续提升检测性能。2) 在多种硬件平台上,设计硬件友好的模型。3) 支持 ARM 平台部署以及量化蒸馏等全链条适配。4) 横向拓展和引入关联技术,如半监督、自监督学习等等。5) 探索 YOLOv6 在更多的未知业务场景上的泛化性能。 同时也欢迎社区同学加入我们,共同建设一个适合工业应用的更快更准的目标检测框架。 # 目标检测开源框架 YOLOv6 全面升级, 更快更准的 2.0 版本来啦 作者:楚怡 红亮 梦婕等 9月5日,美团视觉智能部发布了YOLOv6 2.0版本,本次更新对轻量级网络进行了全面升级,量化版模型YOLOv6-S达到了869FPS,同时,还推出了综合性能优异的中大型网络(YOLOv6-M/L),丰富了YOLOv6网络系列。其中,YOLOv6-M/L在COCO上检测精度(AP)分别达到490 码力 | 1356 页 | 45.90 MB | 2 年前3
C++高性能并行编程与优化 - 课件 - 07 深入浅出访存优化实在太少了。 • 计算太简单,数据量又大,并行只带来了多线程调度的额外开销。 • 小彭老师经验公式:1 次浮点读写 ☐ 8 次浮点加法 - 如果矢量化成功(SSE):1 次浮点读写 ≈ 32 次浮点加法 • 如果 CPU 有 4 核且矢量化成功:1 次浮点读写 ≈ 128 次浮点加 |Benchmark|Time|CPU|Iterations| |---|---|---|---| |B [Image](/uploads/documents/c/5/8/f/c58ff92436036a76c10e50cca6c339e6/p18_1.jpg) ## 缓存的工作机制:读 • 缓存中存储的数据结构: • struct CacheEntry { • bool valid; • uint64_t address; • char data[64]; •}; • CacheEntry cache[512]; 0x0048~0x0050 这 4 个字节时,实际会导致 0x0040~0x0080 的 64 字节数据整个被读取到缓存中。 - 这就是为什么我们喜欢把数据结构的起始地址和大小对齐到64字节,为的是不要浪费缓存行的存储空间。 ## 缓存的工作机制:写 • 缓存中存储的数据结构: • struct CacheEntry { • bool valid, dirty; • uint64_t address; •0 码力 | 147 页 | 18.88 MB | 2 年前3
C++高性能并行编程与优化 - 课件 - 04 从汇编角度看编译器优化被忽视的访存优化:内存带宽与 cpu 缓存机制 8. GPU 专题:wrap 调度,共享内存,barrier 9. 并行算法实战:reduce,scan,矩阵乘法等 10. 存储大规模三维数据的关键:稀疏数据结构 11. 物理仿真实战:邻居搜索表实现 pbf 流体求解 12.C++ 在 ZENO 中的工程实践:从 primitive 说起 13.结业典礼:总结所学知识与优秀作业点评 ## 硬件要求: 4cb5e31bac55f3bf66b/p19_1.jpg) ## addss 是什么意思? 省流助手: 如果你看到编译器生成的汇编里,有大量 ss 结尾的指令则说明矢量化失败;如果看到大多数都是 ps 结尾则说明矢量化成功。 • 可以拆分成三个部分:add,s,s 1. add 表示执行加法操作。 2. 第一个 s 表示标量 (scalar),只对 xmm 的最低位进行运算;也可以是 unique_ptr, shared_ptr, weak_ptr • pair, tuple, optional, variant 存储在栈上无法动态扩充大小,这就是 为什么 vector 这种数据结构要存在堆上, 而固定长度的 array 可以存在栈上 那么刚才那个例子改成 array 是不是就可以自动优化成功了?你可以自己试试看,想一想,为什么会是这个结果,然后在作业的 PR 描述中和老师分享你的思考0 码力 | 108 页 | 9.47 MB | 2 年前3
Facebook -- TVM AWS Meetup Talk0 码力 | 11 页 | 3.08 MB | 1 年前3
共 492 条
- 1
- 2
- 3
- 4
- 5
- 6
- 50













