工作笔记第五天

时钟频率(又译:时钟频率速度,英语:clock rate),是指同步电路中时钟的基础频率。它是评定CPU性能的重要指标。CPU的主频和外频间存在这样的关系:主频=外频×倍频。

着色器(Shader)是用来实现图像渲染的,用来替代固定渲染管线的可编辑程序。其中Vertex Shader主要负责顶点的几何关系等的运算,Pixel Shader主要负责片源颜色等的计算。

CUDA架构的所有功能是为了是GPU不仅能执行传统的图形计算,还能高效的执行通用计算。

在GPU设备上执行的函数通常称为核函数(Kernel)

  __global__ void kernel (void) {

  }

  int main (void) {

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

    printf("hello,world! \n");

    return 0;

  }

扫描二维码关注公众号,回复: 5761809 查看本文章

CUDA C为标准C增加的__global__修饰符,这个修饰符将告诉编译器函数应该编译为在设备而不是在主机上运行。(注释:本书将CPU以及系统的内存称为主机,而将GPU及其内存称为设备)

尖括号表示要将一些参数传递给运行时系统。这些参数并不是传递给设备代码的参数,而是告诉运行时如何启动设备代码。第一个参数表示设备在执行核函数时使用的并行线程块的数量。(注释:将每个并行执行环境称为一个线程块(Block) )

要释放cudaMalloc()分配的内存,需要调用cudaFree(),这个函数的行为与free()的行为非常相似。

extern void *memcpy(void *dest, void *src, unsigned int count);   由src所指内存区域复制count个字节到dest所指内存区域。

cudaMemcpyDeviceToHost,这个参数将告诉运行时源指针是一个设备指针,而目标指针是一个主机指针。

要获得CUDA设备的数量,可以调用cudaGetDeviceCount()。

void *memset(void *str, int c, size_t n) 复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符。

在计算机的系统中有四个内存区域:1)栈:在栈里面储存一些我们定义的局部变量以及形参(形式参数);2)字符常量区:主要是储存一些字符常量,比如:char *p_str=”cgat”;其中”cgat”就储存在字符常量区里面;3)全局区:在全局区里储存一些全局变量和静态变量;4)堆:堆主要是通过动态分配的储存空间,也就是我们接下需要讲的动态分配内存空间。

blockIdx是一个内置变量,在CUDA运行时中已经预先定义了这个变量,变量中包含的值就是当前执行设备代码的线程块的索引。

猜你喜欢

转载自www.cnblogs.com/bingws/p/10648330.html