Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 0
Регистрация: 08.07.2022
Сообщений: 20

Ускорить код с помощью видеокарты

26.09.2022, 20:14. Показов 2273. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день господа программисты!
Подскажите , ни как не могу разобраться.
Есть код, создает из обычного числа, биткоин адрес.
Хочу ускорить код с помощью видеокарты, но не полуается.
Вопрос такой, может ли подобный алгоритм вычисляться с помощью GPU?
Если да, то в чем ошибка?

Вот код:
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from numba import jit, cuda
import numpy as np
import numba as nb
from numba import njit
from bit import *
from bit.format import bytes_to_wif
import os
import subprocess
import time
 
colour_green='\033[0;32m'
colour_cyan = '\033[36m'
colour_reset = '\033[0;0;39m'
colour_red = '\033[31m'
colour_yellow='\033[0;33m'
 
 
ran=1112341123212359906420940958972095585383740 
 
 
@jit(target_backend ="cuda")
def grotik(ran):
    print(colour_cyan + "  Start" + colour_reset)
    time_start=time.perf_counter()  
    
    key = Key.from_int(ran)
    seed=str(ran)
    wif = bytes_to_wif(key.to_bytes(), compressed=False)
    wif2 = bytes_to_wif(key.to_bytes(), compressed=True)
    key1 = Key(wif)
    caddr = key.address 
    uaddr = key1.address 
    saddr = key.segwit_address
    cpub = str(key.public_key)
    upub = str(key1.public_key)
    multisig = MultiSig(key, {key.public_key, key1.public_key}, 2)
    print(caddr)
       
    time_end=time.perf_counter()
    timeton = time_end-time_start
    print(timeton)
    
if __name__ == "__main__" :    
    grotik(ran)


Вот ошибка:
Кликните здесь для просмотра всего текста
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/root/TEST-TIME/test-time.py:39: NumbaWarning: 
Compilation is falling back to object mode WITH looplifting enabled because Function "grotik" failed type inference due to: Untyped global name 'Key': Cannot determine Numba type of <class 'type'>
 
File "test-time.py", line 44:
def grotik(ran):
    <source elided>
    
    key = Key.from_int(ran)
    ^
 
  @jit(target_backend ="cuda")
/usr/local/lib/python3.10/dist-packages/numba/core/object_mode_passes.py:151: NumbaWarning: Function "grotik" was compiled in object mode without forceobj=True.
 
File "test-time.py", line 40:
@jit(target_backend ="cuda")
def grotik(ran):
^
 
  warnings.warn(errors.NumbaWarning(warn_msg,
/usr/local/lib/python3.10/dist-packages/numba/core/object_mode_passes.py:161: NumbaDeprecationWarning: 
Fall-back from the nopython compilation path to the object mode compilation path has been detected, this is deprecated behaviour.
 
For more information visit [url]https://numba.readthedocs.io/en/stable/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit[/url]
 
File "test-time.py", line 40:
@jit(target_backend ="cuda")
def grotik(ran):
^
 
  warnings.warn(errors.NumbaDeprecationWarning(msg,
  Start
12KZyqyh7GoVutwLd7hYZ2Td4FH76KwS7J
0.002079175999824656
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.09.2022, 20:14
Ответы с готовыми решениями:

Ускорить работы игры с помощью Speed Gear
Хочу ускорять общую скорость игры, но почему то как только я запускаю эту прогу сразу почти все проги кроме скайпа(хотя скайп тоже иногда)...

Как ускорить парсинг курса валюты из ответа сайта, с помощью асинхронизации?
Как ускорить парсинг курса валюты, с помощью асинхронизации? private String USD() { System.Net.WebClient wc = new...

Ускорить код
Нужно сделать код так чтобы при вводе значений 1 1000000000000000000 2 1000000000000000000 999999999999999999 код успел обработать и выдать...

7
1 / 1 / 0
Регистрация: 08.07.2022
Сообщений: 20
27.09.2022, 13:29  [ТС]
Я попробывал разные способы ускорить конкретный код. Но нужно ускорение за счет видеокарты.
Не пойму просто в чем ошибка. Предпологаю что тип данных не подходит для обработки видеокарты.
Я так понимаю чтобы использовать видеокарту для моего скрипта, нужно редактировать модули используемые в моём скрипте?
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
27.09.2022, 17:52
Цитата Сообщение от koncentrator Посмотреть сообщение
Не пойму просто в чем ошибка
ругается на Key, который взялся из воздуха
0
1 / 1 / 0
Регистрация: 08.07.2022
Сообщений: 20
28.09.2022, 08:03  [ТС]
Ну почему же из воздуха) Key это из библиотеки bit.
Тем более программа без ссылки (@jit(target_backend ="cuda")) на использование ресурсов видеокарты, работает хорошо.
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
28.09.2022, 09:53
koncentrator, а numba сам должен догадаться что Key лежит в bit?

Добавлено через 4 минуты
По факту numba ожидает что в теле функции будут элементарные команды и все внешние данные будут передаваться туда с помощью аргументов функции, допустим numba не поддерживает функцию sum(), то бишь ее придется писать самому и т. д.
1
1 / 1 / 0
Регистрация: 08.07.2022
Сообщений: 20
28.09.2022, 10:26  [ТС]
Fudthhh ну да я впринципе так и предпологал. Вообщем нужно функции из модулей выносить в код скрипта, либо в используемых модулях прописывать прописывать нужные команды numba.
Спсасибо.
0
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
28.09.2022, 11:21
Лучший ответ Сообщение было отмечено u235 как решение

Решение

А если так:
Taichi и 100-кратное ускорение Python-кода
https://habr.com/ru/company/wu... og/688134/

... Taichi может работать и на CPU, и на GPU...
3
1 / 1 / 0
Регистрация: 08.07.2022
Сообщений: 20
28.09.2022, 17:48  [ТС]
Nick07 я думал что все перепробывал)
Попробывал код из статьи, хороший прирост по скорости.
На своём коде быстро опробывал, опять не получилось. Буду вникать как время будет свободное.
Вообщем такую програмку я ещё не юзал, спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.09.2022, 17:48
Помогаю со студенческими работами здесь

Ускорить код)
Есть одна олимпиада на codeforces, но не в том дело. Так вот, одно из заданий (есть во вложениях) требует найти количество пар чисел из...

Ускорить код:
вот задача: На детском утреннике Дед Мороз выдал каждому из n детей по конфете. Однако дети оказались капризными, и каждый из...

Ускорить код
Здравствуйте, столкнулся с проблемой. При выполнении теста, превышается время выполнения кода в 2 с. Обращаюсь за помощью и советом как...

Ускорить код
От чего тормозится код?? что можно изменить убрать,чтобы код работал быстрее?? например syso убрать,что можно еще сделать? Добавлено...

Ускорить асинхронный код
Записываю строки в таблицу так from sqlalchemy import insert import config import Table import asyncio from aiopg.sa import...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru