GPU高效能程式設計CUDA實戰(二)

視覺IMAX發表於2019-04-01

原文首發於公眾號【視覺IMAX】,GPU高效能程式設計CUDA實戰(二)

前言

在上一篇文章中:CUDA8.0+VS2015+Win10開發環境搭建教程中已經介紹了CUDA工程的配置與安裝。本篇文章是對CUDA工程的配置作進一步介紹與補充說明。

CUDA工程的建立(兩種方法)

第一種方法:

這種方法在上一篇文章中作了簡單介紹,但是尚有不足,此處補全。 按照常規方式,新建一個win32控制檯程式,新建一個main.cpp原始檔。 右鍵點選工程——>「生成依賴項」——>「生成自定義」(選擇cuda生成)。

在這裡插入圖片描述
在這裡插入圖片描述
接下來實施「三步走戰略」配置「附加包含目錄」、「附加庫目錄」以及「附加依賴項」。 第一步:配置「附加包含目錄」。
在這裡插入圖片描述
注:對於CUDA Samples,有的電腦安裝後的路徑會隱藏,我們可以在「開始」按鈕處查詢,見下圖。
在這裡插入圖片描述
第二步:配置「附加庫目錄」。
在這裡插入圖片描述
第三步:配置「附加依賴項」
在這裡插入圖片描述
最後,驗證一下配置是否成功。 在新建的工程main.cpp中輸入下述測試程式碼:

#include "stdafx.h"

#include <iostream>
#include<stdio.h>
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
bool InitCUDA()
{
	int count;
	cudaGetDeviceCount(&count);
	if (count == 0)
	{
		fprintf(stderr, "There is no device.\n");
		return false;
	}

	int i;
	for (i = 0; i < count; i++)
	{
		cudaDeviceProp prop;
		if (cudaGetDeviceProperties(&prop, i) == cudaSuccess)
		{
			if (prop.major >= 1)
			{
				break;
			}
		}
	}
	if (i == count)
	{
		fprintf(stderr, "There is no device supporting CUDA 1.x.\n");
		return false;
	}
	cudaSetDevice(i);
	return true;
}

int main()
{
	if (!InitCUDA())
	{
		return 0;
	}

	printf("HelloWorld, CUDA has been initialized.\n");
	system("pause");
	return 0;
}
複製程式碼

執行結果如圖所示。

在這裡插入圖片描述

第二種方法

這種方法,與第一種方法僅在建立工程時存在差異,其他配置方式皆一致。如圖:

在這裡插入圖片描述

經過上述步驟,便完成了CUDA專案工程的搭建,只要在這個框架下實現你的專案需求即可。關於CUDA加速的更多細節,後期將會在知識星球【3D視覺工坊】與公眾號【視覺IMAX】中持續總結並與大家分享,感興趣的小夥伴可以關注。

彩蛋

在公眾號【視覺IMAX】後臺回覆「GPU高效能程式設計CUDA實戰」,即可領取該書籍的中文版pdf。

在這裡插入圖片描述

相關文章