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

[CUDA] 判断一个指针是GPU还是CPU

文章目录

  • cudaPointerGetAttributes

cudaPointerGetAttributes

用cudaPointerGetAttributes函数去获取cudaPointerAttributes, 然后通过判断cudaPointerAttributes中的type来确定指针类型。

  • 这些函数和枚举在cuda-11.x/targets/x86_64-linux/include/driver_types.h中
#include <cuda_runtime_api.h>/*
enum __device_builtin__ cudaMemoryType
{cudaMemoryTypeUnregistered = 0, /**< Unregistered memory */cudaMemoryTypeHost         = 1, /**< Host memory */cudaMemoryTypeDevice       = 2, /**< Device memory */cudaMemoryTypeManaged      = 3  /**< Managed memory */
};
*/
// 将要判断的指针 ptr
cudaPointerAttributes attr;
cudaPointerGetAttributes(&attr, ptr);
if (attr.type == cudaMemoryTypeDevice) {std::cout << "GPU" << std::endl;
} else {std::cout << "CPU" << std::endl;
}
  • 什么时候使用呢? 有的时候host上的地址也会被kernel访问,但是会导致kernel变慢;则这个时候判断pointer的类型,就能清楚知道问题。所以当一个kernel异常慢时,可以考虑是否传入地址为host地址;【可能在地址统一模式下存在这种情况】

http://www.mrgr.cn/news/68038.html

相关文章:

  • 【计网不挂科】计算机网络期末考试——【选择题&填空题&判断题&简述题】题库(1)
  • Flink的流、批处理
  • 为什么要选择优质的短效IP池来进行抓取?
  • Node.js简介以及安装部署 (基础介绍 一)
  • RTC精度及校准
  • Spark on YARN:Spark集群模式之Yarn模式的原理、搭建与实践
  • 远程控制项目第四天 功能实现
  • Claude Prompt:博弈天平|缘起自李继刚老师的提示词
  • 使用PyQt5设计一个简易计算器
  • 【测试】【Debug】pytest运行后print没有输出
  • CPU Study-Multi-Port Cache
  • golang函数
  • 使用开源Embedding模型嵌入高维空间向量
  • Linux命令--paste
  • 【大模型系列】Grounded-VideoLLM(2024.10)
  • Java学习篇之JVM 调优
  • linux进程的状态之环境变量
  • 【贪心算法】No.1---贪心算法(1)
  • linux 进程调度学习笔记
  • 迭代解法:Jacobi、Gauss-Seidel、SOR
  • CPU Study - Branch Prediction
  • java单例模式
  • 使用LoRA 对千问70B模型进行微调
  • R7:糖尿病预测模型优化探索
  • MinGW-w64_10.0.0 + GCC12_x86_64-12.2.0-release-posix-seh-msvcrt-rt_v10-rev2.zip
  • 怎么快速区分金媒10.3和10.4旗舰版小程序,如果只看数字你就out了表面被忽悠教新手几招!