基于NVIDIA Multi-GPU技术的CUDA多GPU编程入门

本文介绍了作者在学习CUDA多GPU编程的过程中,如何利用NVIDIA的SLI Multi-GPU技术,结合NVIDIA官方样例,改造简单的数组求和程序以实现多GPU并行计算。通过将任务平均分配到4块GeForce GTX 1080ti GPU上,成功减少了计算时间,从近4ms降低到约1ms,展现了多GPU加速的优势。

       由于最近新买了4个GPU而开始接触学习GPU编程,因为我原来的程序使用的是C++语言,故在仅仅看完Nvidia官网Mark Harris写的一篇简短的An Even Easier Introduction to CUDA后开始琢磨如何使用多个GPU同时计算来进一步加速程序。

        在查找有关资料和官方手册后,了解到Nvidia有专门的SLI Multi-GPU技术来实现这个过程,N卡的多卡互联要求有两块或以上完全相同的显卡,并且其显示核心的工作主频也相同,才能使用这项技术。正好我这儿是4块完全相同的GeForce GTX 1080ti,满足互联的要求。于是我在参考了CUDA自带的Samples里的simpleMultiGPU后对Mark Harris给出的简单数组求和程序进行了改写:

#include <iostream>
#include <stdlib.h>
#include <math.h>
#include <cuda_runtime.h>
// This application demonstrates how to use CUDA API to use mutiple GPUs(4 Nvidia Geforce GTX 1080 ti)
// Function to add the elements of two arrays

//Mutiple-GPU Plan Structure
typedef struct
{
    //Host-side input data
    float *h_x, *h_y;
	  
    //Result copied back from GPU
	  float *h_yp;
    //Device buffers
    float *d_x, *d_y;

  
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值