当 ucx --with-cuda 时做了什么

news2024/11/18 13:51:51

1,找一只活麻雀,下载编译 ucx

git clone https://github.com/openucx/ucx.git
cd ucx/
git checkout v1.16.0
./autogen.sh
./autogen.sh
mkdir build
cd build
../contrib/configure-devel --with-cuda=/usr/local/cuda --without-rocm --without-java --prefix=${PWD}/../../local_d_nv


make -j
make install

2,运行 ucx 普通示例

ls build/test/apps/


示例解析:

test_tcmalloc

未完待续 。。。。

3,运行 ucx cuda 相关示例

 $ ./test_cuda_hook_static

示例解析:

test_cuda_hook_static

未完待续 。。。。

4,挖掘更深入的 ucx cuda 功能

5,剖析 ucx cuda 功能的达成

6,ucx 使用了那些 cuda API

cuda 开头的:

cudaEventQuery

cudaEventCreateWithFlags

cudaEventDestroy

cudaStreamCreateWithFlags

cudaStreamDestroy

cudaMemcpyDefault

cudaMemcpyAsync

cudaFreeHost

cudaMallocFromPoolAsync

cudaGetErrorString

cudaSetDevice

cudaDeviceSynchronize

cudaGetDeviceCount

cudaFree

cudaMallocManaged

cudaMalloc

cudaMemcpy

cudaMemset

cudaFreeAsync

cudaMallocAsync

cudaMallocPitch

cudaEventDestroy

cudaHostUnregister

cudaHostRegister

cudaHostRegisterPortable

cudaStreamSynchronize

cudaEventRecord

cudaErrorUnsupportedPtxVersion???????????

cu开头的driver api:

cuDeviceGetName

cuPointerGetAttribute

cuMemGetAddress

cuPointerGetAttributes

cuMemRangeGetAttribute

cuMemGetHandleForAddressRange

cuPointerSetAttribute

cuDeviceGetCount

cuEventQuery

cuLaunchHostFunc

cuStreamAddCallback

cuEventCreate

cuStreamCreate

cuStreamDestroy

cuMemcpyDtoDAsync(dst, src, iov[0].length,

cuEventRecord(cuda_ipc_event->event,

cuIpcOpenMemHandle(mapped_addr, key->ph,

cuIpcCloseMemHandle((CUdeviceptr)region->mapped_addr));

cuIpcGetMemHandle(&key->ph, (CUdeviceptr)addr)


cuDeviceGetAttribute(&attrib, CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID,

cuGetErrorString(result, &error_str)

cuCtxGetDevice(&cuda_device)

cuMemGetAddressRange(&pbase, &length, ptr)

cuMemAlloc

cuMemAlloc_v2

cuMemAllocManaged

cuMemAllocPitch

cuMemAllocPitch_v2

cuMemAllocAsync

cuMemAllocFromPoolAsync

cuMemFree_v2

cuMemFreeHost_v2

cuDeviceTotalMem

cuDeviceTotalMem_v2

cuCtxDestroy(m_context)

cuMemAllocHost(&ptr, 64)

cuMemFreeHost(ptr)

cuMemAllocManaged(&dptr, 64, CU_MEM_ATTACH_GLOBAL)

cuMemFree(dptr)

cuMemAllocPitch(&dptr, &pitch, width, height, element_size)

cuMemAllocAsync(&dptr, 64, 0)

cuMemFreeAsync(dptr, 0);

cuDeviceGet(&device, 0)

cuCtxCreate(&context, 0, device)

cuMemAlloc(&dptr, 4096)

cuMemFree(dptr)

cuCtxDetach(context)

cuGetErrorString(_cu_result, &_error_string)

cuInit(0)

cuCtxGetCurrent(&cu_context)

cuDeviceGetUuid ();

7,ucx cuda VS cux rocm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2178551.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaScript 知识点 - 作用域(变量提升、垃圾回收机制、闭包)

一、作用域 1、基本概念 是什么? 指变量、对象和函数在【代码中的可访问性范围】。 有什么用? 理解作用域对【编写高效和无错误的代码】至关重要 分类 局部作用域(函数作用域、块作用域)、全局作用域 涉及到那些知识点 作用域链、JS垃圾回收机…

在线支付系统

一、系统概述 本在线支付系统基于 Servlet 技术构建,旨在为用户提供安全、便捷的支付服务。系统具备简洁的用户界面和高效的支付处理能力,满足用户在各种场景下的支付需求。 二、主要功能 首页登录注册: 用户可以在首页进行登录和注册操作。注…

MacBook 使用 brew 安装 MySQL

目录 (1)准备工作1.1 更新 brew (2)正式安装2.1 安装MySQL:2.2 启动mysql (3)初始化数据库3.1 选择验证密码组件3.2 密码强度3.3 删除匿名用户3.4 禁用root用户远程连接3.5 删除test数据库3.6 重…

C语言 17 宏定义

前面认识了#include指令,接着来看#define指令,它可以实现宏定义。宏是啥意思? 把参数批量替换到文本中,这种实现通常称为宏(macro)或定义宏 (define macro) 可以通过#define来定义宏,规则如下&a…

Cyber Weekly #26

赛博新闻 1、Meta发布最强AR眼镜 Meta Connect 2024大会展示了多款新产品和技术,包括更便宜的Quest 3S系列AR眼镜、新功能丰富的Meta Rayban眼镜、OrionAR眼镜原型机,以及月活5亿用户的Meta AI。其中,OrionAR眼镜以其先进的交互体验和强大的…

鸿蒙开发(NEXT/API 12)【硬件(传感器开发3)】传感器服务

场景介绍 当设备需要获取传感器数据时,可以使用sensor模块,例如:通过订阅方向传感器数据感知用户设备当前的朝向,通过订阅计步传感器数据统计用户的步数等。 函数说明 名称描述OH_Sensor_GetInfos(Sensor_Info **infos, uint32…

算力运力解决方案:构建未来智算新生态

中国联通国际有限公司产品之算力运力解决方案:构建未来智算新生态 在当今这个数据爆炸、技术日新月异的时代,算力已成为推动社会进步和产业升级的关键力量。中国联通国际有限公司紧跟时代步伐,依托其强大的网络资源和深厚的技术积累&#xf…

Linux进程间的通信(四)System-V共享内存

什么是共享内存 共享内存,顾名思义就是允许两个不相关的进程访问同一个逻辑内存,共享内存是两个正在运行的进程之间共享和传递数据的一种非常有效的方式。 不同进程之间共享的内存通常为同一段物理内存。进程可以将同一段物理内存连接到他们自己的地址空…

深度学习后门攻击分析与实现(二)

前言 在本系列的第一部分中,我们已经掌握了深度学习中的后门攻击的特点以及基础的攻击方式,现在我们在第二部分中首先来学习深度学习后门攻击在传统网络空间安全中的应用。然后再来分析与实现一些颇具特点的深度学习后门攻击方式。 深度学习与网络空间…

Node.js安装Express,Node.js支持Typescript以及Express支持Typescript的步骤

1. Node.js 安装Express 运行如下命令: $ mkdir express-demo $ cd express-demo$ npm install express $ npm install body-parser //(可选)中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据 $ npm install cookie-parser //(可选)通过req.cookies…

怎么用gitee做一个图片仓库,在md文档中用这个图片网络地址,然后显示图片

痛因:我为什么要这样做,呃,我一开始图片都是存本地地址的,放在和这个md文档同级的assets文件夹下面,这样子确实当时很方便,复制粘贴什么也不用管,但是想把这个文档分享给别的人的时候&#xff0…

Windows打开HDF5图像:HDFView软件的下载、安装

本文介绍在Windows电脑中,下载、安装用以查看HDF5图像数据的软件HDFView的方法。 HDF5(Hierarchical Data Format 5)是一种用于存储和管理大量科学数据的文件格式,其由HDF Group开发和维护,广泛应用于科学计算、工程、…

ESP8266wifi模块的使用

文章目录 概要整体架构流程技术名词解释具体配置过程小结 概要 本文旨在介绍ESP8266,做为客户端 电脑做为服务端,通过TCP/IP协议在同一个局域网下通过WiFi进行数据交互 设备选用 esp8266 软件选择 安信可串口调试助手 网络调试助手 (若没有软件可私…

OpenCV threhold()函数

OpenCV threhold()函数的主要用途是将灰度图转换为二值图像,实现灰度图的二值化,在机器视觉中使用频度较高,如尺寸量测,物体识别等。其原型如下: 函数参数: src 输入数组(多通道、8 位或 32 位浮点&#xf…

SpringBoot3脚手架

MySpringBootAPI SpringBoot3脚手架&#xff0c;基于SpringBoot3DruidPgSQLMyBatisPlus13FastJSON2Lombok&#xff0c;启动web容器为Undertow(非默认tomcat)&#xff0c;其他的请自行添加和配置。 <java.version>17</java.version> <springboot.version>3.3…

项目集成SpringSecurity框架

目录 项目没集成SpringSecurity框架的实现 项目之前的登录接口 LoginReqVo 接收前端的数据类型 LoginRespVo返回给前端的数据 项目集成SpringSecurity 第一步:导入依赖 第二步:创建security包结构 第三步&#xff1a;实现认证过滤器 第一步&#xff1a;自定义认证过滤器…

Modbus调试工具和源码分享

我们应该知道了学习Modbus协议应该具备主从两个设备才行&#xff0c;但是在学习过程中如果没有真实的物理设备&#xff0c;应该怎么调试呢&#xff1f; 我们可以通过软件工具来模拟主从设备&#xff0c;下面我们推荐几个比较实用的工具。 以下内容包含&#xff1a;实用工具、…

超好用的10款视频剪辑软件,从入门到精通

视频剪辑软件哪款比较好呢&#xff1f;无论是专业制作团队、自媒体创作者&#xff0c;还是家庭用户&#xff0c;一款好用的视频剪辑软件都能极大地提升创作效率和作品质量。以下是十款备受推崇的视频剪辑软件&#xff0c;分别从适用人群、易用程度和功能特点进行介绍。 1.影忆…

揭秘移动硬盘RAW:原因、恢复策略与预防措施

移动硬盘RAW概述 移动硬盘&#xff0c;作为现代数据存储的重要工具&#xff0c;其稳定性与数据安全直接关乎用户的数据资产安全。然而&#xff0c;在使用过程中&#xff0c;不少用户会遇到移动硬盘状态突然变为RAW格式的情况&#xff0c;这往往伴随着数据无法直接访问的困扰。…

1688客服代码怎么做生成悬浮客服代码阿里巴巴国内站1688平台悬浮特效悬浮代码悬浮客服 1688客服代码怎么做生成器软件代码工具制作客服代码阿里巴巴

阿里巴巴国内站1688平台悬浮特效悬浮代码悬浮客服 1688客服代码怎么做生成器软件代码工具制作客服代码阿里巴巴 一秒美工工具