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

news/2024/9/30 10:23:21 标签: ucx, mpi, cuda

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.niftyadmin.cn/n/5684891.html

相关文章

最佳ThreeJS实践 · 实现赛博朋克风格的三维图像气泡效果

在现代计算机图形学和游戏开发中,创建引人入胜且逼真的三维场景是至关重要的。赛博朋克风格,以其鲜艳的色彩、充满未来感的细节以及复杂的光影效果,成为了许多开发者和艺术家的热门选择。在本文中,我们将深入探讨如何利用 Three.j…

<Rust>iced库(0.13.1)学习之部件(二十九):button部件新增方法on_press_with,可传入闭包函数

前言 本专栏是学习Rust的GUI库iced的合集,将介绍iced涉及的各个小部件分别介绍,最后会汇总为一个总的程序。 iced是RustGUI中比较强大的一个,目前处于发展中(即版本可能会改变),本专栏基于版本0.12.1. 注:新版本已更新为0.13 概述 这是本专栏的第二十九篇,在新版本中…

数据结构串的kmp相关(求next和nextval)

傻瓜版,用来演示手算过程,个人理解用的,仅供参考。

STM32常见配置

二. GPIO配置 2.1 初始化 GPIO时钟 使能所需GPIO端口的时钟: RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);2.2 配置 GPIO 引脚 创建一个GPIO初始化结构体并配置引脚‘ GPIO_InitTypeDef GPIO_InitStruct;// 配置引脚为推挽输出模式 GPIO_InitStruct…

爬虫入门之爬虫原理以及请求响应

爬虫入门之爬虫原理以及请求响应 爬虫需要用到的库, 叫requests. 在导入requests库之前, 需要安装它, 打开cmd: 输入pip install 库名 pip install requests后面出现successful或requirement already就说明已经下载成功了!!! 下载出现的问题: 1.有报错或者是下载慢 修改镜像…

【三步 完全离线搭建 openwebui 】

完全离线linux 版open webui 的搭建 1.在具有网络连接的环境中下载whl 在有网络的环境&#xff0c;使用pip download可以保存所有的依赖包,可以使用-i 指定清华的镜像源加速下载速度。 # 命令&#xff1a; pip download <package_name> --only-binary:all: --wheel --…

【linux 多进程并发】linux进程状态与生命周期各阶段转换,进程状态查看分析,助力高性能优化

0102 Linux进程生命周期 ​专栏内容&#xff1a; postgresql使用入门基础手写数据库toadb并发编程 个人主页&#xff1a;我的主页 管理社区&#xff1a;开源数据库 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 文章目录…

【ecology】独立选择框\公共选择框表

独立选择框\公共选择框表 独立选择框 workflow_SelectItem 公共选择框 select * from mode_selectitempage select * from mode_selectitempagedetail