OpenCL - как да създадете отделен математически процес на всяко ядро

Нов съм в OpenCL и пиша приложение за факторинг на RSA. В идеалния случай приложението трябва да работи както в NV, така и в AMD GPU цели, но не намирам лесен начин за определяне на общия брой ядра/поток процедури на всеки GPU.

Има ли лесен начин да се определи колко общо ядра/поточни процедури има на всяка хардуерна платформа и след това да се създаде нишка за факторизиране на всяко налично ядро? Целевият RSA модул ще бъде в споделена памет и с всяка факторизираща нишка, използваща Rho факторизираща атака срещу модула.

Също така, някаква идея дали OpenCL поддържа математически библиотеки с много точност, подобни на GNU MP, за съхраняване на големи полупрости числа?

Благодаря предварително


person user1316349    schedule 05.04.2012    source източник
comment
Предлагам ви да преместите втория си въпрос в отделен въпрос.   -  person Roger Dahl    schedule 06.04.2012


Отговори (2)


На GPU не създавате една нишка за всяко ядро, както бихте направили на CPU. Вместо това искате да започнете много повече нишки, отколкото има ядра. Не бих се тревожил за точния брой ядра, налични на дадена целева платформа. Вместо това не се фокусирайте върху това, което е най-подходящо за вашия проблем.

person Roger Dahl    schedule 05.04.2012

За да добавите към отговора на Роджър, причината, поради която бихте искали да имате много повече нишки отколкото ядра, е, че GPU имплементират много ефективни превключване на контекст за скриване на закъснение на паметта. Като цяло всеки достъп до паметта е много скъпа операция по отношение на времето, необходимо на процесора да получи исканите данни. Но ако дадена нишка чака транзакция с памет, тя може да бъде "поставена на пауза" и друга нишка може да бъде активирана за извършване на изчисления (или други достъпи до паметта) междувременно. Така че, ако имате достатъчно нишки, можете по същество да скриете латентността на достъпа до паметта и вашият софтуер може да работи с пълния изчислителен капацитет на хардуера (което рядко би се случило иначе).

Бих сложил това в коментар към публикацията на Роджър, но размерът му е извън ограничението.

person Brendan Wood    schedule 06.04.2012