В настоящее время я параллель цикла, подобную этой:Самый простой способ использовать GPU для параллельной цикл
int testValues[16]={5,2,2,10,4,4,2,100,5,2,4,3,29,4,1,52};
parallel_for (1, 100, 1, [&](int i){
int var4;
int values[16]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
/* ...nested for loops */
for (var4=0; var4<16; var4++) {
if (values[var4] != testValues[var4]) break;
}
/* ...end nested loops */
}
Я оптимизированную столько, сколько я могу к тому, что единственное, что еще я могу сделать, это добавьте больше ресурсов.
Я заинтересован в использовании графического процессора для параллельной обработки задачи. Я читал, что такие смущающие параллельные задачи, как это, могут эффективно использовать современный GPU.
Использование любого языка, что является самым простым способом использования графического процессора для простой параллели для цикла, подобного этому?
Я ничего не знаю о архитектуре графического процессора или собственном коде графического процессора.
Если ваша задача представляет собой какую-либо численную вычислительную задачу, или если вы можете повторно использовать ее в качестве матрицы-математической проблемы, вы можете использовать MATLAB. Новые MATLAB поддерживают как параллельные ('parfor' из Parallel Computing Toolbox), так и матричную математику на графических процессорах Nvidia CUDA. Оба они относительно безболезненны, требуя лишь незначительных изменений в существующем коде MATLAB. –
Дополнительная информация о том, что вы пытаетесь сделать здесь, может быть полезна.Помните, что передача данных из ЦП на графический процессор приводит к значительным накладным расходам, поэтому вычисление графического процессора дает только увеличение производительности, если вы выполняете большую вычислительную работу на единицу входных данных. Вычисление квадрата каждого числа в векторе не является хорошим использованием GPGPU (вряд ли любая работа на единицу данных); вычисление БПФ вектора является хорошим использованием (много работы с небольшими данными). –
У меня есть несколько вложенных циклов, в самом внутреннем цикле я использую индексы цикла для вычисления 16 значений и сравнения их с массивом testValues []. Не должно быть значительного доступа к памяти. Также я использую карту AMD/ATI (6850). – Flash