Аватар для snake32
3597 / 1727 / 236
Регистрация: 26.02.2009
Сообщений: 8,767
Записей в блоге: 5

Производительность OpenCL

14.08.2014, 15:35. Показов 62543. Ответов 474
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени!
Написал тест для будущих расчётов с использованием OpenCL и проверил на разных системах:
( дрова для AMD 14.4; для nVidia 340.52 )

Radeon HD 7970(2048/925MHz; 384bit; 3Gb/5GHz) и CPU AMD 8120 справились за 4.3 секунды
GeForce GTX 760(1152/980MHz; 256bit; 4Gb/6GHz) и CPU Intel Q9450 справились за 22.5 секунд
GeForce GTS 450(192/750MHz; 128bit; 2Gb/??) и CPU Intel i7 2600 справились за 46.0 секунд
GeForce GT 520M(48/740MHz; 64bit; 2Gb/??) и CPU Intel 2630QM справились за 117.0 секунд

Интересен слив GTX 760 который оказался в 5,2 раза медленней(хотя по цене так не скажешь). Похоже дело в двойной точности(DP) которая у GeForce урезана маркетологами до 1/24 от производительности одинарной точности(SP). Хотя на титанах говорят оставили полную поддержку 1/3 как в Tesla'x(нужно включать спец галочку в дровах). У всех радиков вроде 1/2.
Ну и плюс к этому, наверное, сам OpenCL драйвер не лучшим образом реализован ибо есть своя CUDA, которая при всех остальных равных не нужна будет ни кому.

Поэтому интересуют тесты либо на более слабых радеонах, либо на топовых джифорсах. А лучше и те и те и побольше!
Ищутся счастливые обладатели карт и готовые скачать и запустить тест( ~30 Мбайт ):
GeForce GTX 780(с TI или без)
GeForce GTX TITAN(с BLACK EDITION или без)
Radeon R9 290( с Х или без ) - для этих карт наверно уже результат будет больше зависеть от CPU
Ну и любые другие радики не старше HD 7000.


https://cloud.mail.ru/public/f... L_TEST.rar
Распаковать архив полностью и запусить ехе
Обязательно укажите проц.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.08.2014, 15:35
Ответы с готовыми решениями:

OpenCL на С++
Здравствуйте, уважаемые форумчани. Стоит задача написать знаменитую GameOfLife на С++ с использованием аппаратных средств видеокарты...

OpenCL на OS X
Ребят, помогите разобраться как начать работать с OpenCL на OS X? Не понимаю что и где надо скачать и поставить что бы начать работу.

Программа в OpenCL
Братцы, сроки поджимают и нужно закончить программульку одну. В общем, делал-делал и пришёл я к тупику на данном этапе... не знаю,...

474
дивананалитикаиксперд
 Аватар для K2K
15998 / 11002 / 915
Регистрация: 08.01.2013
Сообщений: 39,502
03.11.2023, 11:43
Студворк — интернет-сервис помощи студентам
snake32, вот еще результат встройки R3 3200G. Я бы и 12500 прогнал, но тут без гемора никак.



Цитата Сообщение от Сергей1988 Посмотреть сообщение
прикольно, 4070 примерно как 12900К в этой задаче)
Там еще есть похожее, когда 10900 обходит 2080, или когда 8700 обходит 970.
0
 Аватар для Сергей1988
3010 / 1313 / 6
Регистрация: 08.04.2017
Сообщений: 14,712
03.11.2023, 11:44
K2K, ну, я тоже хотел проц прогнать, но опять проходить через все эти переустановки... не охота)
0
дивананалитикаиксперд
 Аватар для K2K
15998 / 11002 / 915
Регистрация: 08.01.2013
Сообщений: 39,502
03.11.2023, 11:48
Цитата Сообщение от Сергей1988 Посмотреть сообщение
Поэтому производители и разграничили игровые и профессиональные решения, что правильно.
Разграничили они потому, чтобы люди задешево не покупали никому ненужную производительность проф карт. Раньше софтом разграничивали, а теперь еще и урезают физически. И я бы согласился, что это правильно, если бы игровые карты становились дешевле, но нет, они наоборот, лишаются блоков и становятся дороже
0
 Аватар для Сергей1988
3010 / 1313 / 6
Регистрация: 08.04.2017
Сообщений: 14,712
03.11.2023, 11:53
K2K, ну, бизнесмены не любят хитрых людей, которые игровые карты используют для рабочих задач)
Потому что они сами привыкли налюбливать людей
С другой стороны, если даже 6800ХТ быстрее, чем 4090, то почему бы не брать под рабочие задачи игровые АМД?
0
 Аватар для dimank666
8246 / 5664 / 205
Регистрация: 29.08.2011
Сообщений: 41,710
Записей в блоге: 1
03.11.2023, 12:38
улучшим показателе на переустановлённой винде
Миниатюры
Производительность OpenCL  
0
 Аватар для dimank666
8246 / 5664 / 205
Регистрация: 29.08.2011
Сообщений: 41,710
Записей в блоге: 1
03.11.2023, 12:44
ну вот другое дело, нефег 12900 в пред батьки в пекло
Миниатюры
Производительность OpenCL  
0
 Аватар для Сергей1988
3010 / 1313 / 6
Регистрация: 08.04.2017
Сообщений: 14,712
03.11.2023, 14:18
dimank666, не дотянул немного до 12900К)
Да и с обновлениями, думаю, он бы трахнул твою 1080Ти
0
 Аватар для snake32
3597 / 1727 / 236
Регистрация: 26.02.2009
Сообщений: 8,767
Записей в блоге: 5
03.11.2023, 14:43  [ТС]
Цитата Сообщение от dimank666 Посмотреть сообщение
ну вот другое дело, нефег 12900 в пред батьки в пекло
12900 по прежнему впредь батько
Миниатюры
Производительность OpenCL   Производительность OpenCL  
0
 Аватар для dimank666
8246 / 5664 / 205
Регистрация: 29.08.2011
Сообщений: 41,710
Записей в блоге: 1
03.11.2023, 17:01
а 5800 3д не тестировали я смотрю
0
 Аватар для Сергей1988
3010 / 1313 / 6
Регистрация: 08.04.2017
Сообщений: 14,712
03.11.2023, 17:09
dimank666, там слишком много каши!
Он всех обойдёт!
0
 Аватар для dimank666
8246 / 5664 / 205
Регистрация: 29.08.2011
Сообщений: 41,710
Записей в блоге: 1
03.11.2023, 17:18
Цитата Сообщение от Сергей1988 Посмотреть сообщение
там слишком много каши!
Он всех обойдёт!
не обойдет я думаю в районе 7000 у него будет результат
0
 Аватар для snake32
3597 / 1727 / 236
Регистрация: 26.02.2009
Сообщений: 8,767
Записей в блоге: 5
03.11.2023, 17:33  [ТС]
dimank666, всем лень ВК драйвер переставлять после установки OpenCL-драйвера
0
 Аватар для snake32
3597 / 1727 / 236
Регистрация: 26.02.2009
Сообщений: 8,767
Записей в блоге: 5
08.05.2024, 17:26  [ТС]
Добавил RX 7900 XTX
Короче нужна новая длинная математика на FP32 чтобы обойти ограничения FP64
Миниатюры
Производительность OpenCL  
0
 Аватар для snake32
3597 / 1727 / 236
Регистрация: 26.02.2009
Сообщений: 8,767
Записей в блоге: 5
14.05.2024, 01:50  [ТС]
Добавил 7840HS + 780M.
7840HS рядом с 12700F
Встройка как пологается слила знатно
Миниатюры
Производительность OpenCL   Производительность OpenCL   Производительность OpenCL  

0
 Аватар для snake32
3597 / 1727 / 236
Регистрация: 26.02.2009
Сообщений: 8,767
Записей в блоге: 5
28.10.2024, 22:34  [ТС]
Протестил RX6700XT: 2578ms или 193,95 попупагев
(500 000/ время ms = попупгаи)
Так же оптимизировал код и теперь 5950Х добавил +22,29%
Интересно что все GPU где я тестировал новый код не показали профита,
а это значит что сами драйвера GPU исправили мою криворукость
и только Intel CPU OpenCL Runtime Driver исполнял код "в лоб" как есть а значит все CPU могут получить +20% скорее всего.
Новое ядро OpenCL (вынес из под цикла лишние вычисления)
C++
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
__constant double rzem = 6371.1;
__constant double eps   = 1e-9;
__constant sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP_TO_EDGE | CLK_FILTER_NEAREST;
__constant uchar wt_water_bit = 128;
__constant uchar wt_cold_bit = 2;
  
__kernel void keGroundWaterCount    (   __global double2 * pgws,
                                                                        __global double2 * da,
                                                                        __global double * steps,
                                                                        __global int * isteps,
                                                                        const int iter,
                                                                        const int iterOffs,
                                                                        const double2 station,
                                                                        const int4 map_param,
                                                                        __read_only image3d_t map
                                                                    )
{
    int ipoint = get_global_id(0);
     
    int water_hot = 0;
    int water_cold = 0;
    double ar = radians( da[ipoint].y );
    uchar v0 = 0;
     
    double2 coord,d,norm;
    double dist,c3,sinar,sinc3,PiSubSt,dd,ss;
    int2 tile,m,p;
    int z;
     
    sinar = sin( ar );
    PiSubSt = radians( 90.0 - station.y );
    double cosPiSubStcosar = cos(PiSubSt)*cos( ar );
    double sinPiSubSt = sin(PiSubSt);
     
    double sdist = steps[ipoint];
    int i = iter*iterOffs;
    int limit = min( isteps[ipoint], i + iterOffs );
     
    while( i < limit )
    {
        dist = i * sdist;
        c3 = dist / rzem;
        if( c3 < eps )
        {
            coord = station;
        }else
        {  
            sinc3 = sin( c3 );
            dd = atan( sinar /( sinPiSubSt/(sinc3/cos(c3)) - cosPiSubStcosar ));
            ss = sinc3*sinar / sin(dd);
            if( ss >= 1.0 )
            {
                ss = 90.0;
            }else
            {
                if( ss <= -1.0 )
                {
                    ss = 270.0;
                }else
                {
                    ss = degrees( atan( ss / sqrt( 1.0 - ss*ss )));
                }
            }
            coord = (double2)( station.x + degrees(dd), 90.0 - ss );
            if( coord.x < -180.0 )
                coord.x += 360.0;
            if( coord.x >= 180.0 )
                coord.x -= 360.0;
        }
         
        d = (double2)( coord.x + 180.0, 90.0 - coord.y );
     
        tile = convert_int2( d );
        norm = d - convert_double2( tile );
  
        m = tile - map_param.xy;   
        z = m.y * map_param.z + m.x;
      
        p = convert_int2( norm * (double2)( get_image_width( map ), get_image_height( map ) ));
         
        v0 = read_imagei( map, sampler, (int4)( p.x, p.y, z, 0 ) ).x;  
         
        if( v0 & wt_water_bit )
        {
            if( v0 & wt_cold_bit )
            {
                water_cold++;
            }else
            {
                water_hot++;
            }
        }
        i++;
    }
    pgws[ipoint].x += water_cold;
    pgws[ipoint].y += water_hot;
}
Миниатюры
Производительность OpenCL   Производительность OpenCL  
Вложения
Тип файла: xlsx OpenCL FP64 Bench (5).xlsx (21.3 Кб, 11 просмотров)
0
 Аватар для Сергей1988
3010 / 1313 / 6
Регистрация: 08.04.2017
Сообщений: 14,712
28.10.2024, 23:03
snake32, может, хоть с RTX 5090 я до второго места доберусь хотя бы?
0
 Аватар для snake32
3597 / 1727 / 236
Регистрация: 26.02.2009
Сообщений: 8,767
Записей в блоге: 5
29.10.2024, 00:12  [ТС]
Цитата Сообщение от Сергей1988 Посмотреть сообщение
может, хоть с RTX 5090 я до второго места доберусь хотя бы?
Если Хуанг в 128 раз не зарежит FP64 то скорее всего, +15% достаточно чтобы занять первое место.
Так то среди CPU думаю уже мог бы и первое занять с оптимизированным кодом и драйвером от Intel
Миниатюры
Производительность OpenCL  
0
 Аватар для Сергей1988
3010 / 1313 / 6
Регистрация: 08.04.2017
Сообщений: 14,712
29.10.2024, 00:19
snake32, это где такой тест?
Я же вроде пытался его прогнать, что-то не вышло.
0
 Аватар для snake32
3597 / 1727 / 236
Регистрация: 26.02.2009
Сообщений: 8,767
Записей в блоге: 5
29.10.2024, 00:29  [ТС]
Цитата Сообщение от Сергей1988 Посмотреть сообщение
Я же вроде пытался его прогнать, что-то не вышло.
Сначала драйвер от Intel надо ставить
0
 Аватар для Сергей1988
3010 / 1313 / 6
Регистрация: 08.04.2017
Сообщений: 14,712
29.10.2024, 00:33
snake32, на АМД? Это ж издевательство)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.10.2024, 00:33

Работа с OpenCL
Добрый вечер уважаемые форумчане, не мог бы кто нибудь помочь вводным курсом в opencl? Есть задача: сравнить скорость выпонения программы в...

Где скачать OpenCL C++?
Здравствуйте. Где скачать OpenCL C++? Если тут https://www.khronos.org/opencl/ есть, то скажите пожалуйста как скачать. Не нашел...

OpenCL в Builder и не только
Все добрый день! На данный момент встала проблема анализа огромного массива данных, времени неделя, а скорость обработки очень мала......

Глобальная переменная в OpenCL
Всем привет! Кто может подсказать как правильно создать глобальную переменную в OpenCL? unsigned char *globalVariable; __kernel...

OpenCL - ошибка 0xc0000005
Есть прога и использованием OpenCL - модель солнечной системы Проблема одна - чем больше частиц, тем быстрее вылетает в разных частях...


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

Или воспользуйтесь поиском по форуму:
400
Ответ Создать тему
Опции темы

Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru