gpt4 book ai didi

variables - 在内核调用之前从 CPU 初始化 GPU 的单个变量

转载 作者:行者123 更新时间:2023-12-02 05:14:15 25 4
gpt4 key购买 nike

在我的应用程序中,GPU 内存中有一个 bool 类型的变量 (bool isBoardReady),我需要在 kernel 调用之前初始化它,然后在内核完成后,取回值(value),所以我的问题是

  1. 如何从 CPU 初始化 GPU 内存中的单个变量(int、bool、double 等)?

  2. 内核调用结束后如何获取该变量的值

提前致谢

最佳答案

函数cudaMemcpyToSymbolcudaMemcpyFromSymbol 用于从主机访问全局设备变量。以下是如何实现此目的的示例:

#include <iostream>
#include <cuda_runtime.h>

__device__ bool isBoardReady;

__global__ void kernel()
{
isBoardReady = true;
}

int main()
{
bool isBoardReady_Host = false;

std::cout<<"Before = "<<isBoardReady_Host<<std::endl;

cudaMemcpyToSymbol(isBoardReady,&isBoardReady_Host,sizeof(bool),0,cudaMemcpyHostToDevice);

kernel<<<1,1>>>();

cudaMemcpyFromSymbol(&isBoardReady_Host,isBoardReady,sizeof(bool),0,cudaMemcpyDeviceToHost);

std::cout<<"After = "<<isBoardReady_Host<<std::endl;

return 0;

}

关于variables - 在内核调用之前从 CPU 初始化 GPU 的单个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14909548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com