Аватар для snake32
3484 / 1668 / 236
Регистрация: 26.02.2009
Сообщений: 8,200
Записей в блоге: 6

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

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

Студворк — интернет-сервис помощи студентам
Доброго времени!
Написал тест для будущих расчётов с использованием 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
Братцы, сроки поджимают и нужно закончить программульку одну. В общем, делал-делал и пришёл я к тупику на данном этапе... не знаю,...

465
 Аватар для ussrex
178 / 153 / 8
Регистрация: 26.12.2012
Сообщений: 676
14.08.2014, 19:11
Вот
Миниатюры
Производительность OpenCL   Производительность OpenCL  
1
 Аватар для snake32
3484 / 1668 / 236
Регистрация: 26.02.2009
Сообщений: 8,200
Записей в блоге: 6
14.08.2014, 19:54  [ТС]
ussrex, Сильный проц! Так как 760 это вроде тот же 670 то дополнительные 2-3 секунды выигрыша очевидно принёс именно проц.

Добавлено через 2 минуты
Страшно представить i7 + Radeon
0
 Аватар для ussrex
178 / 153 / 8
Регистрация: 26.12.2012
Сообщений: 676
14.08.2014, 20:59
А чего он (тест, то бишь) считает хоть?
0
 Аватар для snake32
3484 / 1668 / 236
Регистрация: 26.02.2009
Сообщений: 8,200
Записей в блоге: 6
14.08.2014, 22:52  [ТС]
Тест читает процент воды на трассе между 2-мя точками. Таких трасс в данном тесте более 4.5 млн штук

Добавлено через 11 минут
Если считать классическим методом такое же кол-во профилей/трасс, то одно ядро проца считалось бы минут 25
0
 Аватар для ussrex
178 / 153 / 8
Регистрация: 26.12.2012
Сообщений: 676
14.08.2014, 22:58
А-а-а! Все ясно, как божий день ("Полицейская академия").
А то я уж думал, что считаю объем сферического коня в вакууме ��
1
 Аватар для snake32
3484 / 1668 / 236
Регистрация: 26.02.2009
Сообщений: 8,200
Записей в блоге: 6
15.08.2014, 14:33  [ТС]
Цитата Сообщение от ussrex Посмотреть сообщение
А-а-а! Все ясно, как божий день ("Полицейская академия").
=) Что конкретно не ясно? Могу подробнее рассказать
Кстати, Полицейскую академию смотрел все части и не одни раз, но такого выражения не помню.

Цитата Сообщение от ussrex Посмотреть сообщение
А то я уж думал, что считаю объем сферического коня в вакууме
Не... это реальная задача(точнее малая часть её) на реальных исходных данных

Говорят, что в новой архитектуре Maxwel от nVidia по мимо увеличения энергоэффективности сделали упор и в сторону "не-графческих" вычислений. За счёт чего я так и не понял. Или это только слухи...
Примечательно то что карты с таким чипом уже есть в продаже GeForce GTX 750 TI( 640/1GHz; 128bit; 2Gb/5.4GHz )
По количественным характеристикам не впечатляет. Но затестил бы её с удовольстием.
0
 Аватар для ussrex
178 / 153 / 8
Регистрация: 26.12.2012
Сообщений: 676
15.08.2014, 14:54
Да ладно, я просто улыбнулся. А выражение это из первой серии, когда коменданту предложили избавиться от неудобных кадетов и спросили, понял ли он, что от него требуется. (Ну тут возможны вариации перевода).

Добавлено через 2 минуты
Если еще чем помочь могу в плане потестить, милости просим, можно прямо в личку.
1
Эксперт С++
 Аватар для _lunar_
3701 / 2835 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
15.08.2014, 16:31
HD7850 + i5-3470
процессор так и не смог пройти тест - при старте быстро вылазят несколько консольных окон и закрываются. Программа входит в ступор и висит, загружая процессор на 100% (ждал около 5 минут)
Миниатюры
Производительность OpenCL   Производительность OpenCL  
1
 Аватар для snake32
3484 / 1668 / 236
Регистрация: 26.02.2009
Сообщений: 8,200
Записей в блоге: 6
15.08.2014, 18:02  [ТС]
Цитата Сообщение от _lunar_ Посмотреть сообщение
процессор так и не смог пройти тест
Походу дрова не свежие для Intel OpenCL
Я использую такие(Win7 x64):
https://cloud.mail.ru/public/7... _setup.msi

Добавлено через 8 минут
30 секунд для HD 7850? хм я ожидал большего. Какие дрова 14,4?
Видимо кроме кол-ва шейдеров сильно влияют ещё какие-то блоки. Например TMU
0
дивананалитикаиксперд
 Аватар для K2K
14723 / 10543 / 904
Регистрация: 08.01.2013
Сообщений: 37,485
15.08.2014, 18:04
Цитата Сообщение от snake32 Посмотреть сообщение
обладатели карт и готовые скачать и запустить тест( ~30 Мбайт ):
GeForce GTX 780
Завтра постараюсь сделать. Думаю, чтоб догнать HD 7970 в OpenCL, тут титан блек нужен.
0
 Аватар для snake32
3484 / 1668 / 236
Регистрация: 26.02.2009
Сообщений: 8,200
Записей в блоге: 6
15.08.2014, 18:09  [ТС]
Если кому интересно, код ядра:
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
#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 keGroundWaterCountOne(__global double2 * pgws,
                                                                        __global double2 * da,
                                                                        __global double * steps,
                                                                        __global int * isteps,
                                                                        const int iter,
                                                                        const double2 station,
                                                                        const int4 map_param, 
                                                                        __read_only image3d_t map
                                                                    )
{
    int ipoint = get_global_id(0);
    if( iter >= isteps[ipoint] )
        return;
 
    double2 coord;
    double ar = radians( da[ipoint].y );
    double dist = iter * steps[ipoint];
    double c3 = dist / rzem;
    if( c3 < eps )
    {
            coord = station;
    } else
    {
        double sinar = sin( ar );
        double sinc3 = sin( c3 );
        double PiSubSt = radians( 90.0 - station.y );
        double dd = atan( sinar /( sin(PiSubSt)/(sinc3/cos(c3)) - cos(PiSubSt)*cos(ar) ));
        double 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;
    }
        
    double2 d = (double2)( coord.x + 180.0, 90.0 - coord.y );
    int2 tile = convert_int2( d );
    double2 norm = d - convert_double2( tile );
    int2 m = tile - map_param.xy;   
    int z = m.y * map_param.z + m.x;
    int2 p = convert_int2( norm * (double2)( get_image_width( map ), get_image_height( map ) ));
        
    uchar v0 = read_imagei( map, sampler, (int4)( p.x, p.y, z, 0 ) ).x; 
        
    if( v0 & wt_water_bit )
    {
            if( v0 & wt_cold_bit )
            {
                pgws[ipoint].x += 1;//water_cold++;
            } else
            { 
                pgws[ipoint].y += 1;//water_hot++;
            }
    }
}
Добавлено через 4 минуты
Как видно много DP(double precision) кода + 1 read_imagei, который нагружает TMU.
Цитата Сообщение от K2K Посмотреть сообщение
Думаю, чтоб догнать HD 7970 в OpenCL, тут титан блек нужен.
Да. Ещё бы найти владельца титана.
0
Эксперт Hardware
 Аватар для InsomniaNsk
6266 / 3703 / 313
Регистрация: 13.02.2014
Сообщений: 13,670
15.08.2014, 23:11
i5-3570k @ 4200, GTX 660 Ti @ 1136/6108
Миниатюры
Производительность OpenCL  
1
дивананалитикаиксперд
 Аватар для K2K
14723 / 10543 / 904
Регистрация: 08.01.2013
Сообщений: 37,485
16.08.2014, 07:34


Интересно, будет ли понт от 8ки

Не по теме:

Цитата Сообщение от snake32 Посмотреть сообщение
Да. Ещё бы найти владельца титана.
Да это не проблема, но прогнать тест сам проси. Если надо, кину координаты.

1
 Аватар для snake32
3484 / 1668 / 236
Регистрация: 26.02.2009
Сообщений: 8,200
Записей в блоге: 6
16.08.2014, 11:40  [ТС]
Цитата Сообщение от K2K Посмотреть сообщение
Если надо, кину координаты.
Кидай. Уж больно интересен результат.
0
16.08.2014, 12:10

Не по теме:

Цитата Сообщение от snake32 Посмотреть сообщение
Кидай. Уж больно интересен результат.
На руоверах, есть товарищ remmer29 имеющий черный титан. Его легко найдешь в ветке - Все о GeForce GTX TITAN /GTX 780/GTX 780Ti/GTX TITAN BLACK (GK110. Kepler 28nm)
Ну, или ссылка в txt на его профиль - remmer29.txt
Но, нужна рега на сайте и несколько сообщений, чтоб написать. Ты уж извини, но я ему писать не буду, что-то мы иногда недопонимаем друг-друга :D

0
16.08.2014, 13:49

Не по теме:

Во, по случаю пересеклись. Пока унижаюсь ... :cry: Результата нет :pardon: Надеюсь, не зажопится прогнать, но, гарантий нет.

0
дивананалитикаиксперд
 Аватар для K2K
14723 / 10543 / 904
Регистрация: 08.01.2013
Сообщений: 37,485
16.08.2014, 14:58
Если кому интересно, то беседа с товарищем складывается не очень благоприятно. Почитать можно отсюда, ссылка в txt - 111.txt Ну и если он таки сподобится, то думаю, что выложит результат там же. Такие вот они нежные, владельцы черных титанов
1
Заблокирован
16.08.2014, 18:18
8320@4000 + 270X
так я тут, и мой 8 литровый движок тоже

значит так после того как поставил обновленный драйвер то появилась еще одна строка с выбором в вашей программе отличие только в памяти у одного процессора 2048 у другого 2047(и этот быстрее как видно)
Миниатюры
Производительность OpenCL  
1
дивананалитикаиксперд
 Аватар для K2K
14723 / 10543 / 904
Регистрация: 08.01.2013
Сообщений: 37,485
16.08.2014, 18:28
Цитата Сообщение от dimank666 Посмотреть сообщение
после того как поставил обновленный драйвер то появилась еще одна строка с выбором в вашей программе отличие только в памяти у одного процессора 2048 у другого 2047(и этот быстрее как видно)
Блин, опять амд что-то мухлюет (шучу, шучу). Но разница не кислая А вот результат блека, самому уже интересен. snake32, могу попросить камрадов на 290/290Х прогнать, мож кто откликнется. Интересует?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.08.2014, 18:28
Помогаю со студенческими работами здесь

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

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

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

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

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


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

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

Новые блоги и статьи
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
С днём независимости России!
Hrethgir 13.06.2025
Решил побеседовать, с утра праздничного дня, с LM о завоеваниях. То что она написала о народе, представителем которого я являюсь сам сначала возмутило меня, но дальше только смешило. Это чисто. . .
Лето вокруг.
kumehtar 13.06.2025
Лето вокруг. Наполненное бурями и ураганами событий. На фоне магии Жизни, священной и вечной, неумелой рукой человека рисуется панорама душевного непокоя. Странные серые краски проникают и. . .
Популярные LM модели ориентированы на увеличение затрат ресурсов пользователями сгенерированного кода (грязь -заслуги чистоплюев).
Hrethgir 12.06.2025
Вообще обратил внимание, что они генерируют код (впрочем так-же ориентированы разработчики чипов даже), чтобы пользователь их использующий уходил в тот или иной убыток. Это достаточно опытные модели,. . .
Топ10 библиотек C для квантовых вычислений
bytestream 12.06.2025
Квантовые вычисления - это та область, где теория встречается с практикой на границе наших знаний о физике. Пока большая часть шума вокруг квантовых компьютеров крутится вокруг языков высокого уровня. . .
Dispose и Finalize в C#
stackOverflow 12.06.2025
Работая с C# больше десяти лет, я снова и снова наблюдаю одну и ту же историю: разработчики наивно полагаются на сборщик мусора, как на волшебную палочку, которая решит все проблемы с памятью. Да,. . .
Повышаем производительность игры на Unity 6 с GPU Resident Drawer
GameUnited 11.06.2025
Недавно копался в новых фичах Unity 6 и наткнулся на GPU Resident Drawer - штуку, которая заставила меня присвистнуть от удивления. По сути, это внутренний механизм рендеринга, который автоматически. . .
Множества в Python
py-thonny 11.06.2025
В Python существует множество структур данных, но иногда я сталкиваюсь с задачами, где ни списки, ни словари не дают оптимального решения. Часто это происходит, когда мне нужно быстро проверять. . .
Работа с ccache/sccache в рамках C++
Loafer 11.06.2025
Утилиты ccache и sccache занимаются тем, что кешируют промежуточные результаты компиляции, таким образом ускоряя последующие компиляции проекта. Это означает, что если проект будет компилироваться. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru