当前位置: 首页 > article >正文

CANN/ops-collections昇腾容器库

ops-collections【免费下载链接】ops-collectionsops-collections是基于昇腾硬件的高性能容器模板库提供运行在NPU上的static_map、dynamic_map、set等容器。利用最新的SIMT并发能力支持对容器的批量插入、查找等操作提升整个系统的能力。项目地址: https://gitcode.com/cann/ops-collections一、什么是ops-collectionsops-collections介绍ops-collections是基于昇腾硬件的高性能容器模板库提供运行在NPU上的static_map、dynamic_map、set等容器。利用最新的SIMT并发能力支持对容器的批量插入、查找等操作提升整个系统的能力。软件架构核心特性支持多种容器在NPU上的高性能执行该库仅有头文件组成使用时仅需引用头文件使用风格接近STL库目录结构ops-collections ├── docs //文档文件 ├── doxygen //Doxygen配置文件 ├── include //存放公共头文件 │ ├── detail //容器实现细节 │ │ ├── extent //extent具体实现 │ │ ├── hash_functions //哈希函数实现 │ │ ├── open_addressing //开放寻址法实现 │ │ ├── pair //pair具体实现 │ │ ├── probing_scheme //probing_scheme具体实现 │ │ ├── static_map //static_map具体实现 │ │ └── storages //存储相关实现 │ ├── utility //通用函数、工具 │ ├── bucket_storage.h //BucketStorage容器头文件 │ ├── counter_storage.h //CounterStorage容器头文件 │ ├── extent.h //Extent头文件 │ ├── hash_functions.h //哈希函数对外头文件 │ ├── macros.h //宏定义 │ ├── pair.h //Pair头文件 │ ├── probing_scheme.h //探测策略头文件 │ ├── static_map.h //StaticMap容器对外头文件 │ ├── static_map_ref.h //StaticMapRef设备端引用头文件 │ └── storage.h //Storage基类头文件 ├── scripts //脚本文件存放目录 │ └── build.sh //构建脚本 └── tests //测试代码 ├── common //通用测试工具 ├── performance//性能测试 │ └── static_map ├── static_map //StaticMap单元测试 └── utility //基础组件测试二、环境构建快速安装CANN软件本节提供快速安装CANN软件的示例命令更多安装步骤请参考详细安装指南。安装前准备离线安装时请单击获取链接下载CANN软件包并上传到安装环境任意路径。安装CANN请使用CANN9.0.0-beta.2及以上版本其他版本暂不支持。chmod x Ascend-cann-toolkit_${VERSION}_linux-$(arch).run # 其中${VERSION}表示对应的CANN版本 ./Ascend-cann-toolkit_${VERSION}_linux-$(arch).run --install安装后配置配置环境变量脚本set_env.sh当前安装路径以${HOME}/Ascend为例。source ${HOME}/Ascend/ascend-toolkit/set_env.shCANN详细安装指南开发者可访问昇腾文档-昇腾社区-CANN社区版-软件安装查看CANN软件安装引导根据机器环境、操作系统和业务场景选择后阅读详细安装步骤。测试依赖ops-collections 的功能测试依赖于Catch2测试框架。Catch2 版本要求最低版本v3.5.4推荐版本v3.5.4 或更高版本自动安装构建脚本会自动下载并安装 Catch2 框架无需手动安装。在首次运行功能测试时脚本会自动从 GitHub 克隆 Catch2 v3.5.4 到本地3rdparty/Catch2目录。手动安装可选如果需要手动安装 Catch2可以执行以下命令git clone --depth 1 --branch v3.5.4 https://github.com/catchorg/Catch2.git 3rdparty/Catch2注意功能测试和性能测试是可选的如果不需要运行测试则无需安装 Catch2 框架。ops-collections 的核心功能作为纯头文件库不依赖任何第三方库。三、快速上手运行ops-collections示例下载git clone https://gitcode.com/cann/ops-collections.git您可自行选择需要的分支。编译注意ops-collections正式功能通过头文件提供不提供so或bin等编译产物因此无需编译。为了方便用户快速了解其使用方法ops-collections提供了一些调用示例这部分示例需要编译后才能运行。编译加速库设置加速库环境变量cd ops-collections bash scripts/build.sh -b执行功能测试用例运行所有功能测试用例bash scripts/build.sh -r运行个别测试用例test-name替换为具体测试名称bash scripts/build.sh -r --test-name test-name执行性能测试用例构建性能测试bash scripts/build.sh -p生成的性能测试执行文件在/build/performance文件夹下运行所有性能测试bash scripts/build.sh -rp四、API介绍API概述容器类容器名称功能说明主要特性StaticMap静态哈希表容器提供高效的键值对存储和查询功能基于开放寻址法实现支持批量操作支持同步/异步模式键值类型≤8字节核心APIAPI名称功能说明详细文档Insert / InsertAsync批量插入键值对到哈希表API文档 - InsertInsertIf / InsertIfAsync批量条件插入键值对到哈希表API文档 - InsertIfInsertOrAssign / InsertOrAssignAsync批量插入或更新键值对到哈希表API文档 - InsertOrAssignInsertAndFind / InsertAndFindAsync批量插入并查找键值对同时返回查找结果和插入标志API文档 - InsertAndFindFind / FindAsync批量查找键对应的值API文档 - FindFindIf / FindIfAsync批量条件查找键对应的值API文档 - FindIfContains / ContainsAsync批量检查键是否存在API文档 - ContainsContainsIf / ContainsIfAsync批量条件检查键是否存在API文档 - ContainsIfErase / EraseAsync批量删除键值对API文档 - EraseForEach / ForEachAsync遍历匹配槽位并执行回调API文档 - ForEachClear / ClearAsync清空哈希表API文档 - ClearCount批量统计键存在的数量API文档 - CountCapacity获取哈希表容量API文档 - CapacityData获取数据指针API文档 - Data辅助组件组件名称功能说明使用示例LinearProbing线性探测策略解决哈希冲突aclco::LinearProbingaclco::murmurhash3_32KeyBucketStorage桶式存储管理器负责内存分配和初始化自动使用无需手动配置Pair键值对结构用于存储和传递键值数据aclco::MakePair(key, value)Extent容量表示类支持静态和动态容量aclco::Extentsize_t(10000)Storage存储策略类定义桶大小aclco::Storage5Hash Functions哈希函数集合aclco::murmurhash3_32KeyAPI文档本项目使用Doxygen开源工具来自动生成API文档。Doxygen作为C代码的文档生成工具通过代码中特定格式的注释来生成HTML文档该项目提取了Readme.md和include文件夹中的内容。运行以下命令在docs/html中生成html文件bash scripts/build.sh -doc打开html文件夹中的index.html文件即为文档主页。常用Doxygen注释命令清单如下 | 命令 | 说明 | |-----------------------|-------------------| |brief|函数或类的简短描述| |param|描述函数参数 | |return/returns|描述函数返回值| |tparam|描述模板参数| |note|强调重要说明如性能、使用注意| |warning|警告用户潜在风险如类型限制、内存访问| |see/sa|交叉引用其他函数或类|五、项目集成ops-collections是一个纯头文件库无需编译即可使用。只需在项目中包含头文件#include static_map.h详细使用方法请参考 API文档和使用示例。六、文档导航API文档和使用示例- 详细的API接口说明、参数说明、使用示例开发指导- 环境构建、开发指南、性能测试七、参与贡献提交问题- 报告bug、请求新功能、提出改进建议贡献代码- 欢迎Fork项目并提交Pull Request八、更多资源CANN社区版文档九、许可证CANN Open Software License Agreement Version 2.0【免费下载链接】ops-collectionsops-collections是基于昇腾硬件的高性能容器模板库提供运行在NPU上的static_map、dynamic_map、set等容器。利用最新的SIMT并发能力支持对容器的批量插入、查找等操作提升整个系统的能力。项目地址: https://gitcode.com/cann/ops-collections创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关文章:

CANN/ops-collections昇腾容器库

ops-collections 【免费下载链接】ops-collections ops-collections是基于昇腾硬件的高性能容器模板库,提供运行在NPU上的static_map、dynamic_map、set等容器。利用最新的SIMT并发能力,支持对容器的批量插入、查找等操作,提升整个系统的能力…...

基于Vue 3与Vite的现代化中后台前端解决方案:fast-soy-admin深度解析

1. 项目概述:一个为现代Web应用提速的“脚手架” 最近在折腾一个内部管理系统的重构,前端技术栈选型时,一个绕不开的话题就是“脚手架”。对于有一定规模的团队来说,从零开始配置Webpack、Vite、集成路由、状态管理、UI库、权限、…...

2026株洲AI床垫带来的超绝体验

床垫国标落地,大家都好奇2026年AI床垫能不能带来智能体验。我之前睡眠质量差,换了HEKA黑卡AI智能床垫后,睡眠改善不少,所以很有发言权。HEKA黑卡研发10年,内置230万组睡眠数据库,精准度有保障。它家成人床垫…...

基于Mirai与Spring Boot的QQ机器人开发实战:从零构建PCR公会战管理工具

1. 项目缘起与重生之路 作为一个在QQ机器人圈子里摸爬滚打了快十年的老玩家,我见证过不少框架的兴起与沉寂。最早自己捣鼓着用酷Q和PicqBotX框架,整合Spring写了个叫WMagicBot的小玩意儿,纯粹是自娱自乐。后来酷Q一夜之间停止服务&#xff0…...

GitHub仓库模板:现代软件项目的标准化起点与自动化实践

1. 项目概述:一个现代软件项目的“基因蓝图” 在软件开发的日常里,我们总会遇到一些重复性的“仪式感”工作:新建一个仓库,然后开始配置 .gitignore 、 README.md 、 LICENSE 、CI/CD流水线、代码规范检查工具……这些工作…...

构建AI智能体可信记忆系统:TrustMem架构、部署与调优指南

1. 项目概述:为AI智能体构建一个可信赖的“海马体”在AI智能体(AI Agent)的开发浪潮中,我们常常面临一个核心悖论:智能体拥有强大的推理与生成能力,却像一个患有严重健忘症的天才。它能在一次对话中为你撰写…...

多AI代理协同编码框架:结构化工作空间解决单代理上下文崩溃

1. 项目概述:一个为多AI代理协同编码而生的结构化工作空间如果你和我一样,在过去一年里深度使用过Claude Code、Cursor或者GitHub Copilot这类AI编程助手,那你一定经历过这种“甜蜜的烦恼”:你给AI一个复杂的任务,比如…...

量子计算与深度学习结合解决Frenkel激子模拟难题

1. 量子计算与Frenkel激子模拟的背景与挑战量子计算利用量子比特的叠加和纠缠特性,为解决复杂量子系统模拟问题提供了全新途径。在材料科学领域,Frenkel激子作为典型的局域化光学激发,其哈密顿量的求解对理解有机固体的光电性质至关重要。传统…...

Magisk深度解析:Android系统定制与Root权限的完整实战指南

Magisk深度解析:Android系统定制与Root权限的完整实战指南 【免费下载链接】Magisk The Magic Mask for Android 项目地址: https://gitcode.com/GitHub_Trending/ma/Magisk Magisk作为Android系统定制的瑞士军刀,通过独特的系统级修改技术&#…...

AI 术语通俗词典:自动微分

自动微分是机器学习、深度学习、数值计算和人工智能中非常常见的一个术语。它用来描述:让计算机根据程序中的计算过程,自动、准确地计算导数或梯度的方法。 换句话说,自动微分是在回答:当一个模型由许多层计算组成时,怎…...

AI 术语通俗词典:学习率

学习率是机器学习、深度学习、神经网络和人工智能中非常常见的一个术语。它用来描述:模型每次根据梯度更新参数时,步子迈得有多大。 换句话说,学习率是在回答:模型知道应该往哪个方向改参数之后,到底一次应该改多少。如…...

AI 术语通俗词典:梯度下降

梯度下降是数学优化、机器学习、深度学习和人工智能中非常常见的一个术语。它用来描述一种通过沿着损失函数下降最快的方向不断调整参数,从而让模型误差逐渐变小的方法。换句话说,梯度下降是在回答:模型已经知道自己错了,那么下一…...

Scikit-learn:从数据到结构——无监督学习的最小闭环

在 Scikit-learn 中,学习无监督学习并不只是学习某个聚类算法或降维方法的调用方式,更重要的是理解:当数据没有现成标签时,如何从一批样本中发现结构、生成结果,并判断这种结构是否具有解释价值。与监督学习不同&#…...

对比自行维护API中转与使用Taotoken在稳定性上的体感差异

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比自行维护API中转与使用Taotoken在稳定性上的体感差异 对于需要频繁调用大模型API的开发者而言,服务的稳定性是保障…...

从java改C++后速度变化记录

基本已经实现以前java功能,似乎还是存在卡顿。也就是说暂时还没有出现所谓的5-20倍速度提升。AI辩解:主要花费时间的是模型推理,不是语言计算。------所以解决方法已经出来了:降低推理频率。...

我发现深度神经网络DNN推理图片高度300也能正常运转

我的图片默认是1600x720,我发现只要保持图片比例不变,即使把图片缩放为 高度300也还是能正常工作:这个计算的速度至少是720的4倍以上...

Genkit AI应用框架:统一接口、类型安全与RAG实战指南

1. 从零到一:为什么我们需要 Genkit 这样的 AI 应用框架? 如果你最近在尝试把大语言模型(LLM)集成到自己的应用里,不管是做个智能客服、内容摘要工具,还是更复杂的多步骤工作流,大概率已经踩过…...

基于大语言模型的LaTeX到HTML智能转换:提升学术文档可访问性

1. 项目概述:当学术文档遇见智能转换作为一名长期在学术出版和技术文档领域摸爬滚打的从业者,我几乎每天都要和LaTeX和HTML打交道。LaTeX是学术界和工程界的“标准语言”,用它排版的论文、报告、书籍,其数学公式的精美和版式的严谨…...

节点与边:LangGraph 中智能体通信的底层机制

系列导读 你现在看到的是《LangGraph 多智能体编排开发实战:从入门到企业级应用》的第 3/10 篇,当前这篇会重点解决:节点与边是 LangGraph 的编排基石,理解其底层才能灵活控制智能体流程。 上一篇回顾:第 2 篇《LangGraph 状态管理深度解析:从 State 到持久化》主要聚焦…...

机器学习求解偏微分方程:算子学习与物理信息神经网络全解析

1. 项目概述:当机器学习遇上物理方程在工程和科学计算的漫长历史中,偏微分方程一直是描述物理世界最核心的数学语言。从流体的纳维-斯托克斯方程,到电磁场的麦克斯韦方程组,再到量子力学的薛定谔方程,这些方程构成了我…...

CANN/shmem原理与架构详解

SHMEM原理概述 【免费下载链接】shmem CANN SHMEM 是面向昇腾平台的多机多卡内存通信库,基于OpenSHMEM 标准协议,实现跨设备的高效内存访问与数据同步。 项目地址: https://gitcode.com/cann/shmem SHMEM初始化流程介绍 shmem的初始化接口int ac…...

GE 静态执行器特性分析

GE 静态执行器(Known Shape Executor)特性分析 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率&#xff…...

2026就业寒冬?这10个AI高薪岗位抢人大战一触即发,最高年薪300万!普通人也能抓住风口?

从京东到小米再到腾讯、字节跳动,各大企业为了争夺稀缺的AI专业人才纷纷都祭出了高薪与高福利,2026年1月至2月期间AI岗位数量同比增长约12倍,占新经济岗位的比重从2025年同期的2.29%飙升至26.23%,也就是说现在每四个新经济岗位中就…...

哔哩下载姬DownKyi终极指南:3分钟掌握B站视频无损下载的完整教程

哔哩下载姬DownKyi终极指南:3分钟掌握B站视频无损下载的完整教程 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水…...

开源AI智能体框架安全定制指南:非侵入式补丁与工程化实践

1. 项目概述:为开源AI智能体框架打上你的专属补丁如果你和我一样,是OpenClaw框架的深度用户,那你一定经历过这种时刻:你急需某个功能,比如想给那个终端用户界面换个更酷的配色,或者想为某个特定的智能体单独…...

小红书自动化发布技术解析:从浏览器模拟到风控对抗

1. 项目概述与核心价值最近在逛GitHub的时候,发现了一个挺有意思的项目,叫echo-ikun/xhs-autopost-skill。光看名字,你大概就能猜到,这是一个跟小红书(xhs)自动化发布相关的技能或工具。作为一个在内容创作…...

基因数据交易模拟平台:用金融市场模型探索基因组学动态分析

1. 项目概述:一个基因数据交易与分析的实验平台最近在GitHub上看到一个挺有意思的项目,叫“genome-trader-lab”。光看名字,你可能会觉得有点跨界——“genome”(基因组)和“trader”(交易者)这…...

AI智能体3D可视化监控:用Phaser构建等距办公室视图

1. 项目概述:为AI智能体打造一个“看得见”的办公室如果你正在开发或管理一个由多个AI智能体组成的复杂系统,你可能会遇到一个共同的痛点:这些智能体到底在干什么?它们的状态如何?任务进展到哪一步了?传统的…...

使用技巧(五):插件装了 50 个还是裸奔?Claude Code 三大市场只装一个就够了,这款 165K Star

Claude Code 插件装了 50 个还是裸奔?三个市场只装一个就够了 Windows/macOS/Linux Claude Code 2.x 2026-05-09 一、你装了一堆插件,Claude 还是不按规矩干活? 有没有经历过这些: 装了 10 个 Skill,Claude 还是跳…...

ASIC功能验证:基于规范的方法学与实践

1. ASIC功能验证的现状与挑战在当今的芯片设计领域,功能验证已成为整个开发流程中最耗时且资源密集的环节。根据行业统计数据,现代ASIC项目中验证工作占据了整个开发周期的50%-70%,而设计实现本身仅占较小比例。这种不平衡的资源分配直接反映…...