cudaPointerGetAttributes 应用示例

 有时候需要判断传入sdk的指针所指向的内存类型,是host mem 还是 device mem;

#include <cuda.h>
#include <stdio.h>
#include <cuda_runtime.h>
int main()
{
    int *d_arr, *h_arr, *host_arr;
    int n = 10;

    // Allocate memory on device with cudaMalloc
    cudaMalloc((void **)&d_arr, n * sizeof(int));

    // Allocate memory on host with cudaMallocHost
    cudaMallocHost((void**)&h_arr, n*sizeof(int));

    // Allocate memory on host with malloc
    host_arr = (int*)malloc(n*sizeof(int));

    // Get the memory type for d_arr, h_arr, host_arr
    cudaPointerAttributes attri;
    cudaError_t status;

    status = cudaPointerGetAttributes(&attri, d_arr);
    printf("cudaPointerGetAttributes status: %d attributes.type %d\n", status, attri.type);

    status = cudaPointerGetAttributes(&attri, h_arr);
    printf("cudaPointerGetAttributes status: %d attributes.type %d\n", status, attri.type);

    status = cudaPointerGetAttributes(&attri, host_arr);
    printf("cudaPointerGetAttributes status: %d attributes.type %d\n", status, attri.type);


    // Free memory
    cudaFree(d_arr);
    cudaFree(h_arr);
    free(host_arr);

    return 0;
}

输出:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值