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

记录 | CUDA编程中 __host__ 标识符可以省略的情况

CUDA 完全兼容 C++,因此任何函数如果没有指明修饰符,则默认就是 __host__ ,而如果是 CPU 上的函数,由于本身就是 host 的,所以 __host__ 是可以省略的。

比如:

#include <cstdio>
#include <cuda_runtime.h>

__device__ void say_hello(){
    printf("Hello, world from GPU!\n");
}

__host__ void say_hello_host(){
    printf("Hello, world from CPU!\n");
}

__global__ void kernel(){
    say_hello();
}

int main(){
    kernel<<<1, 1>>>();
    cudaDeviceSynchronize();
    say_hello_host();
    return 0;
}

可以写成:

#include <cstdio>
#include <cuda_runtime.h>

__device__ void say_hello(){
    printf("Hello, world from GPU!\n");
}

void say_hello_host(){                    // 省略__host__
    printf("Hello, world from CPU!\n");
}

__global__ void kernel(){
    say_hello();
}

int main(){
    kernel<<<1, 1>>>();
    cudaDeviceSynchronize();
    say_hello_host();
    return 0;
}

http://www.kler.cn/a/158524.html

相关文章:

  • Java 核心技术卷 I 学习记录八
  • RHCE——系统的延迟任务及定时任务
  • 【东莞石碣】戴尔R740服务器维修raid硬盘问题
  • 什么是 C++ 中的友元函数和友元类?友元的作用是什么?有什么注意事项?
  • 5.4.2-1 编写Java程序在HDFS上创建文件
  • 为何数据库推荐将IPv4地址存储为32位整数而非字符串?
  • Excel如何比较两列数据的不同
  • 论文解读:《数据增强:通过强化学习引导的条件生成进行文本数据扩充》
  • esp32使用命令查看芯片flash大小以及PSRAM的大小
  • dcat admin日志扩展 dcat-log-viewer 遇到的问题记录
  • Navicat在分辨率不同的屏幕窗口显示大小不一致问题解决
  • ActiveMQ Jolokia 代码执行漏洞(CVE-2022-41678)复现
  • Spring——全局异常处理(介绍@RestControllerAdvice和@ExceptionHandler)
  • js实现AES加密解密,简易又全面
  • monaco报错#Unexpected usage at EditorSimpleWorker.loadForeignModule
  • WPF使用Prism框架批量注册Page,Window,UserControl等视图组件
  • 7天快速学习计算机基础必考八股文day02:操作系统
  • SOCKET、TCP、HTTP之间的区别与联系
  • 最新测试开发招聘信息汇总,内含社招和实习生岗位~
  • 如何有效预防内存泄漏?
  • 基于Python+OpenCV的车道线和车辆检测系统
  • 【c】16进制数转化为10进制数(计算方法在最后,大家也可以上网搜索视频,视频更详细,谢谢)
  • Flink入门之核心概念(三)
  • xcode opencv
  • SR锁存器—>带EN的SR锁存器—>D锁存器—>边沿触发式D触发器—>寄存器
  • NET Core迁移前工作