У меня есть четыре CUDA ядра, работающих на матрицах следующим образом:Вызывающие несколько ядер, глобальные характеристики памяти - CUDA
convolution<<<>>>(A,B);
multiplybyElement1<<<>>>(B);
multiplybyElement2<<<>>>(A);
multiplybyElement3<<<>>>(C);
// A + B + C with CUBLAS' cublasSaxpy
каждое ядро в основном (кроме свертка первого) выполняет матрица, каждый-элемент умножения на фиксированное значение жестко закодировано в его постоянной памяти (чтобы ускорить работу).
Должен ли я присоединиться к этим ядер в один по телефону что-то вроде
multiplyBbyX_AbyY_CbyZ<<<>>>(B,A,C)
?
Глобальная память уже должна быть на устройстве так, вероятно, это не помогло бы, но я не совсем уверен,
Можете ли вы попробовать протестировать обе версии и посмотреть, что лучше? В любом случае, поскольку вы повторно используете данные уже в памяти для вызовов ядра, я сомневаюсь, что будет какая-то разница в производительности. – Tudor