Страницы: 1 2 След.
RSS
Как к Экселю подключить GPU и ускорить в несколько раз?
 
Подскажите как можно ускорить эксель, например, с помощью этой статьи. Все выполняю, а не знаю как все это соединить чтобы работало.
https://habr.com/ru/post/655085/
Изменено: Kostya555 - 06.09.2022 21:25:04
 
А что Вы собственно хотели?
Что конкретно не работает?
 
Цитата
написал:
А что Вы собственно хотели?
Ну я, допустим хотел, а что для етого надо? ))
 
Цитата
написал:
Что конкретно не работает?




Он работает, но при расчетах в макросах тормозит
 
Цитата
Kostya555 написал:
Он работает, но при расчетах в макросах тормозит
Меня терзают смутные сомнения (с).
Это напоминает что-то давно забытое, когда по каким-то левым ссылкам предлагали установить на компьютер какие-то левые "ускорители интернета". Потом, естественно, приходилось чистить комп от заразы...

ЗЫ. По ссылке почитал, но ничего не понял...
 
Цитата
написал:
Это напоминает что-то давно забытое, когда по каким-то левым ссылкам предлагали установить на компьютер какие-то левые "ускорители интернета". Потом, естественно, приходилось чистить комп от заразы...
Я вот спрашиваю, я сам не знаю. Реально увеличить скорость для расчета макросов?  
 
Kostya555, Давайте рассуждать логически. Разработчик использует однопоточность, несмотря на то что таблицы считаются с иползованием нескольких потоков. Кто-то сел и написал что-то что вдруг делает из лады мерседес только заменой пары гаек. Вы в это верите? А вот задействовать для расчета в том числе ядра GPU , потенциально возможно. В целом я скептически отношусь как к решению , так и ко всей статье, обратите внимание на то, что, как она появилась, так и угасла и нет ни одного коммента, что все заработало.
Подобное встречается в интернете
https://streamhpc.com/blog/2016-09-19/accelerating-excel-opencl/

К стати , рекомендации отключить уппаратное ускорение относятся к нестабильной работе, когда имеет место быть кривое взаимодействие с драйвером видяхи.
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
Он работает, но при расчетах в макросах тормозит
Э-э-э-э, вы точно перевели Ваши макросы в код OpenCL?
 
Цитата
написал:
ЗЫ. По ссылке почитал, но ничего не понял...
Начать надо хотя бы с понимания того, для чего предназначен OpenCL.
OpenCL это С99 код, компилируемый и выполняемый на многопроцессорных устройствах, без разницы, CPU это, GPU или FPGA.
В примерах из вышеприведённой ссылки автор статьи заменил вычисление произведения матриц в VBA произведением матриц на OpenCL.
Причём сделал это в нескольких потоках (CPU и GPU вычисляют произведение матриц параллельно и независимо друг от друга).  
 
Цитата
написал:
нет ни одного коммента, что все заработало
Ну так попробуте и отпишитесь. В чём сложность-то?
Комменты о том что работает есть на форуме "Видеокарта": https://forum.hiasm.com/topic/68051 предпоследний комментарий: "У меня на ноутбуке тестовые расчёты с матрицами на GPU в 398 раз быстрее чем на VBA."
 
Steve Martin, Вопрос не о том что работает или нет, а о том что посмотрев код тестов наглядно видно , что пример не на то чтоб перевести работу VBA на GPU а просто на то как из VBA задействоdать OpenCL. То есть как бы все не пыжились, ранее написанные коды по мгновению после установки библы не заработают в разы быстрее.
По вопросам из тем форума, личку не читаю.
 
Ігор Гончаренко,
Важно понимать, что такое ускорение, даже на мом слабеньком ноутбуке достигается заменой VBA на OpenCL код. Ничто не даётся просто так, и "ускорителя интернета" на самом деле не существует. Так же как и ускорителя Экселя "на халяву". Прийдётся поработать и перевести макросы из VBA в OpenCL.

Чтобы достичь того же, надо скачать и установить библиотеку хотя бы с sourceforge.

Обратите внимание, что в "c:\Program Files (x86)\ClooWrapperVBA\demo\cl\" содержится OpenCL-код, для вычисления произведения матриц (MatrixMultiplication.cl) и общей производительности устройства (без разницы, CPU или GPU) с double и single точностью (Performance.cl).

Затем стоит открыть демо-таблицу ("c:\Program Files (x86)\ClooWrapperVBA\demo\OpenCl v0.04.xlsm") и пройти последовательно по всем листам таблицы, начиная с первого "Hello world!" и понажимать на все кнопки (по одной на каждом листе, на листе "Performance" их даже две).

Сказать, что достигнуто ускорение в 3000-4000 мешает как раз как раз моя медленная видеокарта (Intel HD Graphics 610).
Была бы NVIDIA Tesla, были бы "3000-4000 раз" (думаю даже на два порядка больше).
 
БМВ,
Цитата
написал:
ранее написанные коды по мгновению после установки библы не заработают в разы быстрее.

Это верно на 100%. Прийдётся поработать и переписать VBA код на OpenCL (C99). ("Ускорителя интернета" действительно не существует.)
Но оно того, как мне кажется, стоит.
Ускорение действительно существенное.
Изменено: Steve Martin - 10.09.2022 23:13:38 (Ошибка)
 
Чувствую надо Bedvit'a (Виталия) сюда подключать )
P.S. А то у меня есть одна задачка, которая выполняется очень долго - удаление стоп-слов из общего списка... Общий список это 1 столбец со словами-фразами (273,000 строк), а список стоп-слов 1 столбец (2.000 строк). Макрос выполняется 3,5 минуты и меня это терзает...
Изменено: New - 10.09.2022 23:27:19
 
New,
Цитата
написал:
P.S. А то у меня есть одна задачка, которая выполняется очень долго - удаление стоп-слов из общего списка.
В библиотеке реализована поддержка только integer, single и double пременных и массивов.
Можно конечно передавать слова в виде массивов значений каждого символа.  
Изменено: Steve Martin - 10.09.2022 23:32:25
 
Цитата
написал:
Это верно на 100%. Прийдётся поработать и переписать VBA код на OpenCL (C99). ("Ускорителя интернета" действительно не существует.)
У меня код на VBA очень простой приложен файл, подскажите как этот код написать на OpenCL (C99), либо подскажите к кому либо куда можно обратиться. Приложу еще сравнения на моем компе VBA  и GPU файл приложен разница просто большая (почти в 600 раз).
Изменено: Kostya555 - 10.09.2022 23:34:55
 
Цитата
написал:
Kostya555, нууу, вы что... так не пишутся макросы
Подскажите, что не так? Я просто не силен в них, то что написано делает то что мне нужно, как написать по другому я не знаю, если строк в файле более 35 000, делает расчет одной цифры последнего порядка более 1 минуты (Cells(2, 13) = k), а есть и файлы по 70 000 строк и более и немного уточню в каждой и 70 000 строк около 12 столбцов с формулами поэтому расчеты происходят очень долго, поэтому и написал что можно сделать и как можно ускорить. Отключение обновления экрана и прочее пробовал добавлять в VBA это не улучшает работу и скорость.
 
Цитата
написал:
Kostya555,
проблему Вашего кода невозможно решить ускорением на GPU.
Просто перед первым "For" поставьте
Код
    [URL=#]?[/URL]       1  2  3  4  5            With   Application              .ScreenUpdating =   False              .Calculation = xlCalculationManual              .EnableEvents =   False          End   With   
 
А после последнего "Next":
Код
    [URL=#]?[/URL]       1  2  3  4  5            With   Application              .ScreenUpdating =   True              .Calculation = xlCalculationAutomatic              .EnableEvents =   True          End   With   
 
Это проблема Экселя - медленная запись значений в ячейки.
Спасибо попробую. Обязательно напишу, есть прогресс либо нет.
 
Kostya555, короче, вам нужно забыть про GPU, и создать новую тему, где приложить небольшой файл-пример, приложить свой макрос, а главное объяснить нам что вы там считаете. И мы вам напишем свой макрос, который будет быстро считать.
Не нужно никогда в цикле бегать по ячейкам, как это делаете вы. Надо работать с двумерными массивами
P.S. Пожалуйста, не нажимайте никогда на кнопку Цитировать, нажимайте только на кнопку Имя, она находится на 1см правее, от кнопки Цитировать
Изменено: New - 10.09.2022 23:49:12
 
New, Спасибо. Новую тему сделаю и выложу файл.
 
New,
Код
Sub test()    
t = 1
    For i = 5 To 13
        For j = 1 To 50
            For k = 21 To 50
                Cells(2, 6) = i
                Cells(2, 10) = j
                Cells(2, 13) = k
                Cells(t, 23) = Cells(34919, "N").Value
                t = t + 1
            Next
        Next
    Next
End Sub


Вообще там за счет изменения каждого числа происходит новый расчет и почти не бывает одинаковых значений. Цифры я изменил так как приходиться останавливать расчет и запускать заново.
Изменено: БМВ - 11.09.2022 09:31:02
 
New, Это сложно реализовать?
Вот нашел пару статей на эту тему:
https://streamhpc.com/blog/2016-09-19/accelerating-excel-opencl/
https://streamhpc.com/blog/2018-06-19/how-to-speed-up-excel-in-6-steps/
https://temofeev.ru/info/articles/vychislyaem-na-videokartakh-tekhnologiya-opencl-chast-1b-pishem-dl...
Изменено: Kostya555 - 11.09.2022 14:49:23
 
Тема про что? Про подключение GPU. А обсуждаем что?
 
Юрий М, Да, про подключение к GPU через Технологию OpenCL.  
 
Цитата
Юрий М написал:
Тема про что? Про подключение GPU. А обсуждаем что?
Похоже, Kostya555 свою задачу решил решать не оптимизацией подхода к её решению, а совсем уж "в лоб" - ускорением неоптимальных вычислений и это привело к экзотическому вопросу по GPU. Советую Косте создать новую тему по perestroike конкретной задачи с тройными циклами, а в этой теме оставить только мнения по uskoreniyu GPU.
 
tolikt, Я не против создать новую тему, просто дело даже не в макросе, а в очень длительном расчете в экселе, при наличии более 40 000 строк(файл размер около 15 мб), даже если я вручную без макроса изменю цифру расчет делается очень долго. Поэтому и зашла речь о альтернативном расчете через например через OpenCL, по сути GPU. Просто исходя из статьи
https://temofeev.ru/info/articles/vychislyaem-na-videokartakh-tekhnologiya-opencl-chast-1b-pishem-dl...
Это сделать реально и скорость расчета увеличится исходя из статьи в 7 раз.  Если оптимизация кода в VBA  увеличит скорость расчета, я тоже согласен на это(то что предлагали по факту не увеличивает скорость расчета).
Изменено: Kostya555 - 11.09.2022 19:40:22
 
Таак, я вчера задолбался тему чистить, так сегодня продолжение следует!!!!

Все, прекратили обсуждать все что касается применения чего либо для оптимизации расчета ТС. Только строго по теме.
По вопросам из тем форума, личку не читаю.
 
Тааак, стоило отлучится и снова тема уехала, теперь в другую сторону.

Что-то подсказывает что надо закрыть. Щас в очередной раз почищу, но еще раз . Тут про использование OpenCL!!! Для другого есть другие темы, если нет то открывайте а эту не засоряем.

все оптимзации и помощь ТСу в другой теме которая конкретно про его проблему, хотя и там приплетено GPU


Следующий, кто не понял, не важно, кто, получит предупредительный бан. Не смотря на прежние заслуги.!!!
По вопросам из тем форума, личку не читаю.
 
БМВ, предлагаю переименовать в Как к Экселю подключить GPU — и никаких разговоров об ускорении, которого может и не быть  :)
Зато появятся вопросы "а нахрена" и советы "лучше оптимизируйте код" (одно и второе и так уже тут есть в теме) :D
Изменено: Jack Famous - 12.09.2022 17:21:41
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, Алексей, я предупреждал, прости но отдохни пож денек.
По вопросам из тем форума, личку не читаю.
Страницы: 1 2 След.
Читают тему
Наверх