0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

华为全新推出BoostKit2.0充分发挥鲲鹏有效算力

华为产品资料 来源:华为产品资料 作者:华为产品资料 2021-12-03 09:12 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本次直播介绍鲲鹏BoostKit使能极致性能,全新推出2.0,提供四大类“数据亲和”加速组件,通过对数据全处理流程进行负载优化,提升CPU利用率,减少等待,从而大幅提升应用性能。

鲲鹏BoostKit专家/晁老师

将为大家在线讲解此次【鲲鹏直播间】BoostKit 2.0进阶:数据亲和。邀请好友报名直播+课程还能赢取华为手环等好礼哦~

本次直播主要介绍BoostKit1.0主要面向鲲鹏聚焦的八大主力场景,通过解决具体场景中的痛点、难点问题,把鲲鹏算力性能发挥到极致。

但在实际应用中,很多传统计算负载的CPU实际利用率并不高,大量有效计算能力浪费在等待数据的加载上。

因此这次我们全新推出BoostKit2.0,它提供四大类“数据亲和”的加速组件,包括数据就近计算,数据加速传输,数据并行化处理,数据安全等,对数据的全处理流程进行负载优化,充分发挥鲲鹏有效算力,从而大幅提升应用性能。

原文标题:【鲲鹏直播间】BoostKit 2.0进阶:数据亲和,邀请好友完成直播+课程报名华为手环等你来拿!

文章出处:【微信公众号:华为产品资料】欢迎添加关注!文章转载请注明出处。
责任编辑:pj

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7363

    浏览量

    95157
  • 华为
    +关注

    关注

    218

    文章

    36284

    浏览量

    262993
  • 鲲鹏
    +关注

    关注

    1

    文章

    150

    浏览量

    9570

原文标题:【鲲鹏直播间】BoostKit 2.0进阶:数据亲和,邀请好友完成直播+课程报名华为手环等你来拿!

文章出处:【微信号:huaweidoc,微信公众号:华为产品资料】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    云尖信息正式推出G7866 X6 8U16卡服务器 破解行业困境

    云尖信息正式推出全新一代G7866 X6 8U16卡服务器。该产品以“高性能硬件配置+创新架构设计”为核心,通过8U机架高度集成16块高性能
    的头像 发表于 05-06 11:07 1111次阅读

    破解Agent场景落地难题!拓维信息旗下湘江鲲鹏重磅推出OpenClaw部署新范式

    从“理解指令”到“完成任务”,以OpenClaw为代表的开源智能体,正引领人工智能产业加速迈入自主决策、工具调用、闭环执行的全新纪元。在这场AI大增量浪潮之下,高端场景供给不足、入门级
    的头像 发表于 04-09 17:37 320次阅读
    破解Agent场景落地难题!拓维信息旗下湘江<b class='flag-5'>鲲鹏</b>重磅<b class='flag-5'>推出</b>OpenClaw部署新范式

    海啸之下,鲲鹏如何为企业龙虾打造坚实底座?

    从个人OpenClaw到企业龙虾,鲲鹏海啸筑起堤坝
    的头像 发表于 03-24 01:20 1w次阅读
    <b class='flag-5'>算</b><b class='flag-5'>力</b>海啸之下,<b class='flag-5'>鲲鹏</b>如何为企业龙虾打造坚实底座?

    【「Linux 设备驱动开发(第 2 版)」阅读体验】充分发挥硬件潜力

    Linux内核内存分配 Linux系统使用了一种称为“虚拟内存”的机制。虚拟内存机制使得每个内存地址都是虚拟的,这意味着它们不会直接指向RAM中的任何地址。这样我们访问内存中的存储单元时,都会进行地址转换以匹配相应的物理内存 在Linux系统中,内核中的每个进程都表示为一个task_struct结构体实例,该结构体实例表征并描述了这个进程。在进程开始运行之前,系统会为其分配一个内存映射表,该表存放在struct mm_struct类型的变量中。在内核中,全局变量current时钟指向当前进程,current->mm字段指向当前的进程内存映射表,struct mm_struct结构定义参见include/linux/mm_types.h 地址转换和MMU MMU不仅可以将虚拟地址转换为物理地址,还可以保护内存免受未经授权的访问。给定一个进程,需要从此进程访问的任何页都必须位于一个VMA中,且必须位于进程的页表中 由于最近访问的数据存放在缓存中,因此最近转换的地址也存放在缓存中。数据缓存加快了数据访问过程,TLB则加快了虚拟地址的转换过程。TLB是内容可寻址内存,其中键是虚拟地址,值是物理地址,其运作过程如下图所示 内存分配机制 下图展示了Linux系统中不同的内存分配器。最低级别的分配器是页分配器,它以页为单位分配内存,然后是Slab分配器,它建立在页分配器的基础上,从中获取页并将它们拆分为较小的内存实体,kmalloc分配器依赖于Slab分配器 实现DMA支持 DMA是计算机系统的一种特性,它允许设备在没有CPU干预的情况下访问主系统内存,使CPU嫩巩固专注于其他任务。它的使用示例包括网络流量加速、音频数据或视频帧抓取等,它的使用并不限于特定领域。负责管理DMA事务的外围设备是DMA控制器,它存在于大多数现代处理器和微控制器中。 DMA的工作方式如下:当驱动程序需要传输数据块时,便使用源地址、目标地址和要复制的总字节数设置DMA控制器,然后DMA控制器自动将数据地址从源地址传输到目标地址,而不会占用CPU周期。当剩余字节数为0时,数据块传输结束并通知驱动程序。 DMA引擎API DMA控制器接口由两部分组成:控制器和通道。控制器执行内存传输,通道则是客户端驱动程序向控制器提交作业的方式 DMA控制器在Linux内核中别抽象为dma_device结构体实例,其定义如下 struct dma_device { struct kref ref; unsigned int chancnt; unsigned int privatecnt; struct list_head channels; struct list_head global_node; struct dma_filter filter; dma_cap_mask_tcap_mask; enum dma_desc_metadata_mode desc_metadata_modes; unsigned short max_xor; unsigned short max_pq; enum dmaengine_alignment copy_align; enum dmaengine_alignment xor_align; enum dmaengine_alignment pq_align; enum dmaengine_alignment fill_align; #define DMA_HAS_PQ_CONTINUE (1 << 15) int dev_id; struct device *dev; struct module *owner; struct ida chan_ida; u32 src_addr_widths; u32 dst_addr_widths; u32 directions; u32 min_burst; u32 max_burst; u32 max_sg_burst; bool descriptor_reuse; enum dma_residue_granularity residue_granularity; int (*device_alloc_chan_resources)(struct dma_chan *chan); int (*device_router_config)(struct dma_chan *chan); void (*device_free_chan_resources)(struct dma_chan *chan); struct dma_async_tx_descriptor *(*device_prep_dma_memcpy)( struct dma_chan *chan, dma_addr_t dst, dma_addr_t src, size_t len, unsigned long flags); struct dma_async_tx_descriptor *(*device_prep_dma_xor)( struct dma_chan *chan, dma_addr_t dst, dma_addr_t *src, unsigned int src_cnt, size_t len, unsigned long flags); struct dma_async_tx_descriptor *(*device_prep_dma_xor_val)( struct dma_chan *chan, dma_addr_t *src,unsigned int src_cnt, size_t len, enum sum_check_flags *result, unsigned long flags); struct dma_async_tx_descriptor *(*device_prep_dma_pq)( struct dma_chan *chan, dma_addr_t *dst, dma_addr_t *src, unsigned int src_cnt, const unsigned char *scf, size_t len, unsigned long flags); struct dma_async_tx_descriptor *(*device_prep_dma_pq_val)( struct dma_chan *chan, dma_addr_t *pq, dma_addr_t *src, unsigned int src_cnt, const unsigned char *scf, size_t len, enum sum_check_flags *pqres, unsigned long flags); struct dma_async_tx_descriptor *(*device_prep_dma_memset)( struct dma_chan *chan, dma_addr_t dest, int value, size_t len, unsigned long flags); struct dma_async_tx_descriptor *(*device_prep_dma_memset_sg)( struct dma_chan *chan, struct scatterlist *sg, unsigned int nents, int value, unsigned long flags); struct dma_async_tx_descriptor *(*device_prep_dma_interrupt)( struct dma_chan *chan, unsigned long flags); struct dma_async_tx_descriptor *(*device_prep_slave_sg)( struct dma_chan *chan, struct scatterlist *sgl, unsigned int sg_len, enum dma_transfer_direction direction, unsigned long flags, void *context); struct dma_async_tx_descriptor *(*device_prep_dma_cyclic)( struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len, size_t period_len, enum dma_transfer_direction direction, unsigned long flags); struct dma_async_tx_descriptor *(*device_prep_interleaved_dma)( struct dma_chan *chan, struct dma_interleaved_template *xt, unsigned long flags); struct dma_async_tx_descriptor *(*device_prep_dma_imm_data)( struct dma_chan *chan, dma_addr_t dst, u64 data, unsigned long flags); void (*device_caps)(struct dma_chan *chan, struct dma_slave_caps *caps); int (*device_config)(struct dma_chan *chan, struct dma_slave_config *config); int (*device_pause)(struct dma_chan *chan); int (*device_resume)(struct dma_chan *chan); int (*device_terminate_all)(struct dma_chan *chan); void (*device_synchronize)(struct dma_chan *chan); enum dma_status (*device_tx_status)(struct dma_chan *chan, dma_cookie_t cookie, struct dma_tx_state *txstate); void (*device_issue_pending)(struct dma_chan *chan); void (*device_release)(struct dma_device *dev); /* debugfs support */ void (*dbg_summary_show)(struct seq_file *s, struct dma_device *dev); struct dentry *dbg_dev_root; }; DMA通道的结构体定义如下 struct dma_chan { int dev_id;/* this channel is allocated if >= 0, */ /* free otherwise */ void __iomem *io; const char *dev_str; int irq; void *irq_dev; unsigned int fifo_addr; unsigned int mode; }; 请求DMA通道 dma_request_channel()函数用于请求一个通道 struct dma_chan *dma_request_channel(dma_cap_mask_t mask, dma_filter_fn filter_fn, void *filter_param); 配置DMA通道 DMA引擎框架使用struct dma_slave_config数据结构进行配置,该数据结构表示DMA通道的运行时配置,这样客户端就可以指定诸如DMA方向、DMA地址、总线宽度和DMA突发成都等外设的参数,struct dma_slave_config数据结构定义如下 struct dma_slave_config { enum dma_transfer_direction direction; phys_addr_t src_addr; phys_addr_t dst_addr; enum dma_slave_buswidth src_addr_width; enum dma_slave_buswidth dst_addr_width; u32 src_maxburst; u32 dst_maxburst; u32 src_port_window_size; u32 dst_port_window_size; bool device_fc; void *peripheral_config; size_t peripheral_size; }; 通过dmaengine_slave_config()函数将这种配置作用于底层硬件上 static inline int dmaengine_slave_config(struct dma_chan *chan, struct dma_slave_config *config) { if (chan->device->device_config) return chan->device->device_config(chan, config); return -ENOSYS; } 配置DMA传输 这一步用于确认DMA传输的方式,要进行一次DMA传输,就需要用到与DMA通道对应的控制器中的一些函数,这些函数名为device_prep_dma_*,例如对于内存到内存的传输,使用device_prep_dma_memcpy() struct dma_async_tx_descriptor *tx; struct dma_chan *chan = acdev->dma_chan; dma_cookie_t cookie; unsigned long flags = DMA_PREP_INTERRUPT; int ret = 0; tx = chan->device->device_prep_dma_memcpy(chan, dest, src, len, flags); if (!tx) { dev_err(acdev->host->dev, \"device_prep_dma_memcpy failed\\\\n\"); return -EAGAIN; } 提交DMA传输 为了把事务放到驱动程序的事务待处理队列中,可以使用dmaengine_submit()函数 static inline dma_cookie_t dmaengine_submit(struct dma_async_tx_descriptor *desc) { return desc->tx_submit(desc); } 发出待处理的DMA请求并等待回调通知 启动传输是DMA传输设置的最后一步,可以通过在通道上调用dma_async_issue_pending()来激活通道待处理队列中的传输。 static inline void dma_async_issue_pending(struct dma_chan *chan) { chan->device->device_issue_pending(chan); }
    发表于 02-04 22:30

    华为荣获服务商互联能力成熟度模型参编证书

    在2025互联网大会期间,互联网服务论坛在成都成功举办。论坛现场举行了《服务商互联能
    的头像 发表于 12-31 11:50 921次阅读

    破局「巴别图书馆」迷宫——鲲鹏的索引地图

    鲲鹏生态,如何打造指引?
    的头像 发表于 12-30 01:27 3095次阅读
    破局「巴别图书馆」<b class='flag-5'>算</b><b class='flag-5'>力</b>迷宫——<b class='flag-5'>鲲鹏</b>的索引地图

    华为AI WAN解决方案推动互联网高质量发展

    出,人工智能规模化应用驱动部署需求全面升级,华为AI WAN解决方案凭借持续的技术创新突破,有效解决了跨域
    的头像 发表于 12-25 15:17 847次阅读

    湘军,让变成生产

    脑极体
    发布于 :2025年11月25日 22:56:58

    华为发布全球最强超节点和集群

    华为全联接大会2025(HUAWEI CONNECT 2025)上,华为发布最强超节点和集群,并表示将发展生态作为公司核心战略,提升到前所未有的战略高度。在计算领域,
    的头像 发表于 10-10 17:29 2541次阅读

    什么是AI模组?

    未来,腾视科技将继续深耕AI模组领域,全力推动AI边缘计算行业的深度发展。随着AI技术的不断演进和物联网应用的持续拓展,腾视科技的AI模组将在更多领域
    的头像 发表于 09-19 15:26 2232次阅读
    什么是AI<b class='flag-5'>算</b><b class='flag-5'>力</b>模组?

    什么是AI模组?

    未来,腾视科技将继续深耕AI模组领域,全力推动AI边缘计算行业的深度发展。随着AI技术的不断演进和物联网应用的持续拓展,腾视科技的AI模组将在更多领域
    的头像 发表于 09-19 15:25 1145次阅读
    什么是AI<b class='flag-5'>算</b><b class='flag-5'>力</b>模组?

    什么是非标超声波清洗设备的最大优势?如何充分发挥其特点?

    的优势,如高效、彻底、节能、环保等。本文将重点介绍非标超声波清洗设备的最大优势以及如何充分发挥其特点。一、高效清洗非标超声波清洗设备通过高频声波的作用,能够在短时
    的头像 发表于 07-08 16:58 787次阅读
    什么是非标超声波清洗设备的最大优势?如何<b class='flag-5'>充分发挥</b>其特点?

    大唐高鸿信安与华为鲲鹏完成产品双认证

    近日,大唐高鸿信安(浙江)信息科技有限公司(简称:高鸿信安)和华为技术有限公司(简称:华为)联合开展鲲鹏产品双认证工作,高鸿信安自主研发的可信支撑模块V2.0、操作系统可信增强系统V
    的头像 发表于 06-26 17:02 1686次阅读

    燧弘华创携手合作伙伴共筑智能新生态

    园区超级智能体”解决方案及联合创新中心建设等核心议题展开深度研讨。此次会议旨在充分发挥各方专业优势,加速构建具有全球竞争的自主可控生态,为海沧区打造AI产业高地提供核心支撑,助力
    的头像 发表于 06-23 11:51 1611次阅读

    KADC 2025,筑起行业智能化的屏障

    伙伴与开发者,站在鲲鹏昇腾的基座之后
    的头像 发表于 05-29 10:09 1417次阅读
    KADC 2025,筑起行业智能化的<b class='flag-5'>算</b><b class='flag-5'>力</b>屏障