Создание программы которая создает список из приватных ключей Криптокошелька litecoin и к нему соотвествующие адреса кошельков. сделать на gpu CUDA. есть версия рабочая на питоне но она работает на cpu. Нужно на порядки увеличенить производительность

Стоимость:1 500 рублей
Срок выполнения:7 дней
Варианты оплаты:По договоренности
Дата публикации:2024-04-23 16:43
Обновлено:2024-04-23 16:43
Был(а) на сайте:2024-04-29 12:33

Создание программы которая создает список из приватных ключей Криптокошелька litecoin и к нему соотвествующие адреса кошельков. сделать на gpu CUDA. есть версия рабочая на питоне но она работает на cpu. Нужно на порядки увеличенить производительность

 
Задача

Язык лучше python. Можно и на C. Не принципиально.

Оставлять заявки могут только авторизованные пользователи.
Для подачи заявки на участие в задании Вам нужно авторизоваться
Скиньте 100 рублей на чай. Спасибо.
мой телеграмм:@wetemik

Код базовый и примерный, я его не тестил, но можете взять его бесплатно, как шаблон.
#include <iostream>

#include <vector>
#include <cuda_runtime.h>

__global__ void gpuKeyGeneration(int* privateKeys, int* publicKeys, int size) {
int tid = blockIdx.x * blockDim.x + threadIdx.x;
if (tid < size) {
// Generate key pairs on GPU
// Example logic, not actual implementation
privateKeys[tid] = tid; // Generating private keys
publicKeys[tid] = tid * 2; // Generating public keys
}
}

int main() {
int dataSize = 10;
std::vector<int> cpuPrivateKeys(dataSize);
std::vector<int> cpuPublicKeys(dataSize);
int* gpuPrivateKeys;
int* gpuPublicKeys;
cudaMalloc((void**)&gpuPrivateKeys, dataSize * sizeof(int));
cudaMalloc((void**)&gpuPublicKeys, dataSize * sizeof(int));
int threadsPerBlock = 256;
int blocksPerGrid = (dataSize + threadsPerBlock - 1) / threadsPerBlock;
gpuKeyGeneration<<<blocksPerGrid, threadsPerBlock>>>(gpuPrivateKeys, gpuPublicKeys, dataSize);
cudaMemcpy(cpuPrivateKeys.data(), gpuPrivateKeys, dataSize * sizeof(int), cudaMemcpyDeviceToHost);
cudaMemcpy(cpuPublicKeys.data(), gpuPublicKeys, dataSize * sizeof(int), cudaMemcpyDeviceToHost);
std::cout << "Generated Key Pairs:\n";
for (int i = 0; i < dataSize; ++i) {
std::cout << "Private Key: " << cpuPrivateKeys[i] << ", Public Key: " << cpuPublicKeys[i] << "\n";
}

// Free GPU memor
cudaFree(gpuPrivateKeys);
cudaFree(gpuPublicKeys);

return 0;
}

:)

Оставлять заявки могут только авторизованные пользователи.