在C++ AMP中,如何檢測和枚舉所有C++ AMP加速器?如何列舉C++ AMP中的所有加速器?
唐McCrady分佈式應用程式here枚舉非模擬加速器。雖然我有一個DX11卡(GTX 260),但我沒有看到任何可用的加速器。 Daniel Moth顯示如何查詢單個加速器,但我找不到如何使用C++ AMP調用枚舉所有(模擬和非加速器)加速器。
在C++ AMP中,如何檢測和枚舉所有C++ AMP加速器?如何列舉C++ AMP中的所有加速器?
唐McCrady分佈式應用程式here枚舉非模擬加速器。雖然我有一個DX11卡(GTX 260),但我沒有看到任何可用的加速器。 Daniel Moth顯示如何查詢單個加速器,但我找不到如何使用C++ AMP調用枚舉所有(模擬和非加速器)加速器。
看起來它很簡單:concurrency::get_accelerators();
丹尼爾蛾comments:
在VS 11開發者預覽版位,您只需撥打併發:: get_accelerators();.無論何時,我們正在努力使Beta版更易於發現。
這裏是我的代碼:
#include <iostream>
#include "stdafx.h"
#include "amp.h"
using namespace std;
using namespace concurrency;
void inspect_accelerators()
{
auto accelerators = accelerator::get_all();
for_each(begin(accelerators), end(accelerators),[=](accelerator acc){
wcout << "New accelerator: " << acc.description << endl;
wcout << "is_debug = " << acc.is_debug << endl;
wcout << "is_emulated = " << acc.is_emulated <<endl;
wcout << "dedicated_memory = " << acc.dedicated_memory << endl;
wcout << "device_path = " << acc.device_path << endl;
wcout << "has_display = " << acc.has_display << endl;
wcout << "version = " << (acc.version >> 16) << '.' << (acc.version & 0xFFFF) << endl;
});
}
更新1:
由於VS 11測試版,這是目前加速器:: get_all();
感謝從我的博客在這裏重新發布的答案:-)
你做你的問題邊評論:
「雖然我有一個DX11顯卡(GTX 260),我沒有看到任何可用的加速器「
如果Don的實用程序沒有找到您的卡,那麼它不是DX11卡,或者他的實用程序中存在錯誤,我們希望您向他報告repro。但是,我在供應商的網站上驗證GTX 260是DX10卡。這樣,纔不會對C++ AMP代碼的好目標,可惜......
乾杯
丹尼爾
感謝後續。你是對的 - 不知道爲什麼Win7 x86上的dxdiag.exe顯示DX11。昨天出去買了一臺GTX 560 Ti,它的功能正確。 –
啊,剛發現的文檔:http://msdn.microsoft.com/en-us /library/hh350903(v=VS.110).aspx –
以下是新文檔的位置:http://msdn.microsoft.com/en-us/library/hh350895(v=vs.110).aspx –