Как перечислить все ускорители в C ++ AMP? - PullRequest
1 голос
/ 23 сентября 2011

В C ++ AMP, как можно обнаружить и перечислить все ускорители C ++ AMP?

Дон МакКрэди распространил приложение здесь , которое перечисляет неэмулируемые ускорители.Хотя у меня была карта DX11 (GTX 260), я не видел доступных ускорителей.Даниэль Мот показывает здесь , как запросить отдельный ускоритель, но я не смог найти, как перечислить все (эмулированные и не) ускорители с помощью вызова C ++ AMP.

Ответы [ 2 ]

6 голосов
/ 23 сентября 2011

Похоже, все довольно просто: concurrency::get_accelerators(); Даниэль Мот комментарии :

в битах VS 11 Developer Preview вы просто вызываете concurrency :: get_accelerators () ;.Мы работаем над тем, чтобы сделать это более доступным для бета-тестирования, когда бы это ни было.

Вот мой код:

#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 Beta, теперь это ускоритель :: get_all ();

1 голос
/ 26 сентября 2011

Спасибо, что опубликовали ответ из моего блога здесь: -)

Вы сделали побочный комментарий в своем вопросе:

«Хотя у меня была карта DX11 (GTX 260), я не видел доступных ускорителей»

Если утилита Дона не нашла вашу карту, значит, это не карта DX11, или в его утилите есть ошибка, и мы будем признательны, если вы сообщите ему об этом. Однако на сайте производителя я проверил, что GTX 260 - это карта DX10. Так что это не будет хорошей целью для кода C ++ AMP, к сожалению ...

Приветствия

Daniel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...