Ситуацията е следната; набор от изчисления (написани на C++), които биха били направени най-добре, като се използва какъвто и GPU да е наличен в системата на потребителя или неговия CPU, ако такъв GPU не съществува, където тази потребителска система не е машината за изграждане и ще бъде от неизвестен (но доста стандартна десктоп) конфигурация.
Понастоящем мога да пиша код с помощта на Thrust, но (освен ако не съм разбрал погрешно) в момента на действителното му изграждане, целта е зададена (най-общо казано, Nvidia или само CPU) и двоичният файл ще използва само GPU хардуер на машината на потребителя ( възможно дори няма да работи иначе), ако е от същата фамилия GPU, за която е създаден двоичният файл.
Това, което бих искал в един вълшебен идеален свят, е двоичен файл, който ще идентифицира какво (ако има такова) семейство GPU (Nvidia, ATI, резервен към обикновен CPU) е налично на машината, на която работи, и ще го използва. Необходимостта да се изградят три отделни версии и да се уверите, че всеки потребител получава правилната за своята конкретна машина, не е начинаещ (целите са доста стандартни настолни компютри; Windows, Linux и Solaris - нека оставим това настрана, тъй като има различна компилация за всяка от тези три е напълно приемлива; целта е да има двоичен файл за всяка от тези три цели, който идентифицира и използва наличния графичен процесор сам по себе си, независимо дали е Nvidia, ATI или просто CPU).
Въвеждам някои обнадеждаващи термини в Google, но все още не намерих нищо, което да се отнася до това; доколкото знам, това е напълно решен проблем и просто не съм написал правилните думи.
Може ли някой да ми каже какъв (ако има такъв) е стандартният начин да направя това?
Редакции: премахната е лошата информация за тягата, добавена е бележка за крайния целеви хардуер