Добавить новость

Охранял атомную бомбу в СССР, шокировал американцев, взяв в руки пистолет: история о русском вратаре Трефилове

Производитель из Подмосковья разработал несколько рецептур сухих бульонов

Главе СК России будет представлен доклад по уголовному делу о преступлении в отношении малолетней жительницы Москвы

Больше всего на благотворительность жертвуют в Санкт-Петербурге и Москве



Новости сегодня

Новости от TheMoneytizer

C Python на C++ с использованием CUDA

Техническое задание (ТЗ) на переписывание программы с Python на C++ с использованием CUDA
1. Общая информация
Цель данного ТЗ — переписать существующую реализацию программы на Python для генерации и проверки криптографических ключей с использованием Bloom-фильтров на языке C++ с добавлением поддержки параллельных вычислений на GPU с помощью технологии CUDA. Основная задача программы заключается в генерации большого количества приватных ключей и их проверке на совпадение с известными криптовалютными адресами (BTC и ALT).

2. Задачи и функциональные требования
2.1. Переписать код на C++
Полностью переписать текущую Python-реализацию на C++.
Обеспечить функциональное соответствие между Python-версией и новой C++-версией.
2.2. Добавление CUDA для использования GPU
Реализовать параллельные вычисления с использованием CUDA для генерации приватных ключей и их проверки по Bloom-фильтрам.
Ускорить генерацию криптографических ключей и хэш-функций за счет вычислительных мощностей GPU.
2.3. Ключевые функции программы:
SecureRandom: Создать класс для генерации случайных чисел на основе seed (посевного значения) с использованием криптографически стойкого генератора случайных чисел.
Генерация приватных ключей: Реализовать функционал генерации приватных ключей в шестнадцатеричной форме.
Генерация адресов P2PKH: Реализовать функцию создания P2PKH-адресов (сжатых публичных ключей) с использованием алгоритмов SHA-256 и RIPEMD-160.
Поддержка Bloom-фильтров: Загрузка и использование Bloom-фильтров для проверки сгенерированных публичных ключей.
Параллельная генерация и проверка ключей:
Реализовать генерацию приватных ключей и их проверку с использованием нескольких потоков CPU (с помощью стандартной многопоточности C++).
Добавить поддержку CUDA для многопоточной генерации ключей на GPU.
Сохранение результатов: При нахождении совпадений сохранять приватные ключи и соответствующие публичные адреса в файл.
2.4. Параллельные вычисления на GPU (CUDA)
Использовать CUDA для ускорения:
Генерации приватных ключей.
Выполнения хэширования (SHA-256 и RIPEMD-160).
Проверки ключей с использованием Bloom-фильтров.
Обеспечить распределение задач на GPU таким образом, чтобы генерация и проверка адресов выполнялась максимально эффективно на графическом процессоре.
2.5. Оптимизация и производительность
Оптимизировать код с учетом архитектуры GPU для минимизации времени выполнения программы.
Использовать параллельные блоки и потоки CUDA для равномерной загрузки вычислительных блоков GPU.
3. Требования к архитектуре
Модульная структура:

Код должен быть разбит на отдельные модули для легкости сопровождения и тестирования:
Модуль генерации случайных чисел.
Модуль генерации приватных ключей.
Модуль хэширования и генерации адресов.
Модуль работы с Bloom-фильтрами.
Модуль параллельных вычислений (CUDA).
Поддержка многопоточности на CPU и GPU:

Генерация ключей должна поддерживать многопоточность как на CPU (с использованием стандартных библиотек C++ для многопоточности), так и на GPU (с использованием CUDA).
4. Требования к производительности (с поддержкой multi-GPU)
Программа должна поддерживать параллельные вычисления на минимум 8 графических картах NVIDIA GeForce RTX 4090 для обеспечения максимальной производительности при генерации приватных ключей и проверке адресов через Bloom-фильтры.
5. Требования к среде разработки
Язык программирования: C++ (стандарт C++17 и выше).
Для CUDA: минимальная версия CUDA 10.0.
Использование библиотек для криптографии: возможно использование готовых библиотек для работы с SHA-256 и RIPEMD-160 (например, OpenSSL или встроенные CUDA-функции).
Поддержка многопоточности: библиотека std::thread для многопоточности на CPU.
Компилятор: GCC или Clang для CPU; NVCC для компиляции CUDA-кода.
Операционная система: Linux или Windows.
6. Требования к вводу и выводу
Ввод:
Seed (посевное значение) для генерации приватных ключей.
Путь к Bloom-фильтрам для BTC и ALT.
Вывод:
Сохранение найденных приватных ключей и соответствующих адресов в файл.
Логирование процесса генерации (количество сгенерированных ключей, время выполнения, и т.д.).
7. Тестирование и валидация
Провести тестирование всех модулей, включая:
Тестирование генерации ключей на GPU и CPU.
Проверку правильности хэширования и генерации адресов.
Валидацию результатов проверки через Bloom-фильтры.
Обеспечить, чтобы результаты программы на C++ были идентичны результатам программы на Python.
8. Документация
Код должен быть снабжен комментариями для облегчения понимания.
Предоставить инструкцию по сборке проекта и его запуску.
Объяснить, как использовать CUDA для ускорения вычислений в программе.
9. Оценка сроков и этапы выполнения
Этап 1: Переписать Python-код на C++ с поддержкой многопоточности на CPU — 2 недели.
Этап 2: Реализовать поддержку CUDA и оптимизировать программу для работы с GPU — 3 недели.
Этап 3: Провести тестирование и отладку, устранить ошибки — 1 неделя.
Итого: 6 недель на выполнение задания.
10. Требования к квалификации исполнителя
Опыт программирования на C++.
Опыт разработки приложений с использованием CUDA.
Знание криптографических алгоритмов (SHA-256, RIPEMD-160).
Знание работы с Bloom-фильтрами.
Опыт работы с многопоточными приложениями.
11. Примерный результат
Переписанная на C++ программа с поддержкой многопоточности и ускорением на GPU с помощью CUDA, которая выполняет генерацию криптографических ключей, хэширование и проверку на совпадения через Bloom-фильтры с высокой производительностью.

Читайте на 123ru.net


Новости 24/7 DirectAdvert - доход для вашего сайта



Частные объявления в Вашем городе, в Вашем регионе и в России



Smi24.net — ежеминутные новости с ежедневным архивом. Только у нас — все главные новости дня без политической цензуры. "123 Новости" — абсолютно все точки зрения, трезвая аналитика, цивилизованные споры и обсуждения без взаимных обвинений и оскорблений. Помните, что не у всех точка зрения совпадает с Вашей. Уважайте мнение других, даже если Вы отстаиваете свой взгляд и свою позицию. Smi24.net — облегчённая версия старейшего обозревателя новостей 123ru.net. Мы не навязываем Вам своё видение, мы даём Вам срез событий дня без цензуры и без купюр. Новости, какие они есть —онлайн с поминутным архивом по всем городам и регионам России, Украины, Белоруссии и Абхазии. Smi24.net — живые новости в живом эфире! Быстрый поиск от Smi24.net — это не только возможность первым узнать, но и преимущество сообщить срочные новости мгновенно на любом языке мира и быть услышанным тут же. В любую минуту Вы можете добавить свою новость - здесь.




Новости от наших партнёров в Вашем городе

Ria.city

​Валерий Овчинников: «Нужно побеждать, жду от сборной успехов»

В Петербурге у пересечения двух дорог на полгода ограничат движение

Директор МОНИКИ поздравил студентов-медиков Подмосковья с началом учебного года

Библиотеки Балашихи дали старт онлайн-бронированию книг

Музыкальные новости

Shaman спел на «Авторадио» всенародные хиты

Спорт и игры: какие мероприятия «Москвы 2030» популярны у семей участников СВО

Выставка «Я ты мы другое»

Выставка о защитниках Москвы открылась в Музее Победы

Новости России

Двух игроков «Чеховских медведей» признали лучшими по итогам сезона

Сергей Собянин: Проводим комплексную модернизацию

Выше ставки: для кого вскоре подорожает ОСАГО

Станислав Кондрашов подчеркивает важность этических аспектов применения ИИ в медицине

Экология в России и мире

Пластический хирург Мадина Байрамукова: с помощью каких бьюти-средств можно подтянуть грудь

Музыкальный Лейбл.

В Москве проходят теннисные матчи юношеского турнира памяти Ю. М. Лужкова

Российский турист прилетел на Кубу и был отправлен назад в Россию по этой причине

Спорт в России и мире

Теннисистка Петрова: Медведев показал класс в третьем круге US Open

Александр Зверев квалифицировался на Итоговый турнир ATP

Медведев о матче с Синнером: «Постараюсь больше думать об «Уимблдоне», чем об Australian Open»

Теннисист Рублев проиграл Димитрову в матче четвертого круга US Open

Moscow.media

В деревне Здехово

"Руки порезаны до костей": в Таиланде нашли тело туриста из Свердловской области

Колчимский камень

Социальный фонд оказывает помощь эвакуированным жителям Курской области











Топ новостей на этот час

Rss.plus






Библиотеки Балашихи дали старт онлайн-бронированию книг

Охранял атомную бомбу в СССР, шокировал американцев, взяв в руки пистолет: история о русском вратаре Трефилове

Время обновлений: кого российские футбольные клубы купили и продали летом

Производитель из Подмосковья разработал несколько рецептур сухих бульонов