美文网首页
CUDA编程基础——内存分配

CUDA编程基础——内存分配

作者: ThalesW | 来源:发表于2018-04-25 15:30 被阅读0次

    本文介绍cuda编程中cudaMalloc和cudaMemcpy。

    #include <iostream>
    #include "book.h"
    __global__ void add( int a, int b, int *c ) {
        *c = a + b;
    }
    int main( void ) {
        int c;
        int *dev_c;
        HANDLE_ERROR( cudaMalloc( (void**)&dev_c, sizeof(int) ) );
        add<<<1,1>>>( 2, 7, dev_c );
        HANDLE_ERROR( cudaMemcpy( &c, dev_c, sizeof(int), cudaMemcpyDeviceToHost ));
        printf( "2 + 7 = %d\n", c );
        cudaFree( dev_c );
        return 0;
    }
    

    首先声明了一个dec_c变量,是存储在CPU内存中的指针变量的地址,cudaMalloc在执行完成后,向这个地址写入了一个地址值(此地址值是GPU显存里的)。
    cudaMemcpy拷贝内存,可以从host到device也可以从device到host,根据参数来配置。

    相关文章

      网友评论

          本文标题:CUDA编程基础——内存分配

          本文链接:https://www.haomeiwen.com/subject/uacylftx.html