tantan的博客

Notes, ideas, and observations

TensorFlow 是一种用于表达机器学习算法的接口, 以及一种用于执行这些算法的实现. 使用 TensorFlow 表达的计算可以在各种异构系统上以少量或无需修改的方式执行, 这些系统范围从手机和平板电脑等移动设备到由数百台机器和数千个计算设备 (如 GPU 卡) 组成的大规模分布式系统. 该系统具有高度的灵活性, 可用于表达各种算法, 包括深度神经网络模型的训练和推理算法, 并且已被用于在计算机科学和其他领域超过十几个领域进行研究和将机器学习系统部署到生产中, 包括语音识别、计算机视觉、机器人技术、信息检索、自然语言处理、地理信息提取和计算药物发现. 本文描述了 TensorFlow 接口以及我们在 Google 构建的该接口的实现.TensorFlow API 和参考实现2015 年 11 月作为 Apache 2.0 许可的开源软件包发布. 可在 <www.tensorflow.org> 上获取.

当前的现代先进机器学习 (ML) 程序的并行化策略通常采用细粒度操作, 并突破了以 MapReduce 为代表的经典批量同步处理范式, 甚至引入了依赖于 ML 程序图形化表示的专用算子. 然而, 这些多样化的方法往往使系统与算法设计朝不同方向发展, 导致难以找到一种通用平台, 以满足大规模下多种不同 ML 程序的需求.

Spanner 是 Google 公司研发的、可扩展的、多版本、全球分布式、同步复制数据库。它是第一个把数据分布在全球范围内的系统,并且支持外部一致性的分布式事务。本文描述了 Spanner 的架构、特性、不同设计决策的背后机理和一个新的时间 API,这个 API 可以暴露时钟的不确定性。这个 API 及其实现,对于支持外部一致性和许多强大特性而言,是非常重要的,这些强大特性包括:非阻塞的读、不采用锁机制的只读事务、原子模式变更。

io_uring 是 Linux 内核 5.1 版本引入的异步 I/O 框架,

  • std::add_const_t<T>: 为类型 T 添加 const 修饰符。

  • std::add_volatile_t<T>: 为类型 T 添加 volatile 修饰符。

  • std::add_cv_t<T>: 为类型 T 添加 const 和 volatile 修饰符。

  • std::remove_const_t<T>: 移除类型 T 的 const 修饰符。

  • std::remove_volatile_t<T>: 移除类型 T 的 volatile 修饰符。

  • std::remove_cv_t<T>: 移除类型 T 的 const 和 volatile 修饰符。

  • std::add_lvalue_reference_t<T>: 为类型 T 添加左值引用修饰符。

  • std::add_rvalue_reference_t<T>: 为类型 T 添加右值引用修饰符。

  • std::remove_reference_t<T>: 移除类型 T 的引用修饰符。

  • std::remove_extent_t<T>: 移除类型 T 的数组维度。

  • std::remove_all_extents_t<T>: 移除类型 T 的所有数组维度。

  • std::remove_pointer_t<T>: 移除类型 T 的指针修饰符。

  • std::add_pointer_t<T>: 为类型 T 添加指针修饰符。

  • std::make_signed_t<T>: 将类型 T 转换为有符号类型。

  • std::make_unsigned_t<T>: 将类型 T 转换为无符号类型。

dlmalloc 是一个 C 语言实现的流行的内存分配器实现,由纽约州立大学 Oswego 分校计算机系教授 Doug Lea 在 1980 年代编写,许多人称之为 Doug Lea 的 malloc,或者简称 dlmalloc。

Dynamo 是 Amazon 在 2007 年发表的大规模分布式 K-V 存储系统. 作为电商领域的巨头, Amazon 较早面临巨大业务规模带来的技术挑战. Dynamo 的技术方案在当时的分布式系统中是非常前沿的, 其设计思想和实现细节对后来的 NoSQL 系统产生了深远的影响.

SPDK 是 Intel 提出的一套用户态 NVMe SSD I/O 软件栈,其核心是使用用户态的 SSD 驱动绕过上下文切换的开销。

0%