Как получить время в ядре CUDA C++?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как получить время в ядре CUDA C++?

Сообщение Anonymous »

Наконец-то я создал искатель low md5 с поддержкой графического процессора, я так счастлив! Вот код, слегка адаптированный из другой реализации:

Код: Выделить всё

https://github.com/EnesO226/md5zerofinder/blob/main/kernel.cu
Однако, когда я пытаюсь использовать cudaEvents в ядре, моя визуальная студия сообщает, что cudaEvents не разрешены в ядре. Я хочу печатать здесь хешрейт каждый раз, когда будет найден новый хэш:

Код: Выделить всё

__device__ void md5(const uchar* data, const uint size, uint result[4])
{
uint state[4] = { 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476 }, i;

for (i = 0; i + block_size > 8) & 0x000000ff);
m[2] = (uchar)((thread >> 16) & 0x000000ff);
m[3] = (uchar)((thread >> 24) & 0x000000ff);

for (unsigned long long i = 0; i < 0xffffffffffffffff; i++) {
m[4] = (uchar)(i & 0x000000ff);
m[5] = (uchar)((i >> 8) & 0x00000000000000ff);
m[6] = (uchar)((i >> 16) & 0x00000000000000ff);
m[7] = (uchar)((i >> 24) & 0x00000000000000ff);
m[8] = (uchar)((i >> 32) & 0x00000000000000ff);
m[9] = (uchar)((i >> 40) & 0x00000000000000ff);
m[10] = (uchar)((i >> 48) & 0x00000000000000ff);
m[11] = (uchar)((i >> 56) & 0x00000000000000ff);
md5(m, 12, res);
}
}

int main()
{
test  > ();
system("pause");
return 0;
}
Как мне получить здесь хэшрейт? Я спросил у гугла (и чатGPT, да, это иногда полезно), но я знаю, как рассчитать время только тогда, когда ядро ​​уже готово, поэтому мне пришлось бы ставить итерации намного ниже, но тогда оно не работает бесконечно, вы понимать? Вот мой вопрос; есть ли способ получить время в ядре cuda __device__ или __global__?
ВАЖНО: моя визуальная студия не поддерживает атомные и часы( )

Подробнее здесь: https://stackoverflow.com/questions/792 ... a-c-kernel
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»