Форум программистов, компьютерный форум, киберфорум
Наши страницы

OpenCL

Войти
Регистрация
Восстановить пароль
 
 
snake32
1633 / 1087 / 158
Регистрация: 26.02.2009
Сообщений: 4,026
Записей в блоге: 5
#1

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

14.08.2014, 15:35. Просмотров 5272. Ответов 99
Метки нет (Все метки)

Доброго времени!
Написал тест для будущих расчётов с использованием 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/fbc8ee636508/OCL_TEST.rar
Распаковать архив полностью и запусить ехе
Обязательно укажите проц.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2014, 15:35
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Производительность OpenCL (OpenCL):

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

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

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

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

Границы поверхностей OpenCL - OpenCL
Необходимо определить границы поверхностей по изображению, как это можно сделать в OpenCV?

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

99
ussrex
178 / 153 / 7
Регистрация: 26.12.2012
Сообщений: 676
14.08.2014, 19:11 #2
Вот
1
Миниатюры
Производительность OpenCL   Производительность OpenCL  
snake32
1633 / 1087 / 158
Регистрация: 26.02.2009
Сообщений: 4,026
Записей в блоге: 5
14.08.2014, 19:54  [ТС] #3
ussrex, Сильный проц! Так как 760 это вроде тот же 670 то дополнительные 2-3 секунды выигрыша очевидно принёс именно проц.

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

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

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

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

Добавлено через 2 минуты
Если еще чем помочь могу в плане потестить, милости просим, можно прямо в личку.
1
_lunar_
1384 / 1315 / 107
Регистрация: 03.05.2011
Сообщений: 3,038
Завершенные тесты: 1
15.08.2014, 16:31 #9
HD7850 + i5-3470
процессор так и не смог пройти тест - при старте быстро вылазят несколько консольных окон и закрываются. Программа входит в ступор и висит, загружая процессор на 100% (ждал около 5 минут)
1
Миниатюры
Производительность OpenCL   Производительность OpenCL  
snake32
1633 / 1087 / 158
Регистрация: 26.02.2009
Сообщений: 4,026
Записей в блоге: 5
15.08.2014, 18:02  [ТС] #10
Цитата Сообщение от _lunar_ Посмотреть сообщение
процессор так и не смог пройти тест
Походу дрова не свежие для Intel OpenCL
Я использую такие(Win7 x64):
https://cloud.mail.ru/public/7d38098..._x64_setup.msi

Добавлено через 8 минут
30 секунд для HD 7850? хм я ожидал большего. Какие дрова 14,4?
Видимо кроме кол-ва шейдеров сильно влияют ещё какие-то блоки. Например TMU
0
K2K
Дивананалитикаиксперд
7327 / 6182 / 639
Регистрация: 08.01.2013
Сообщений: 22,679
15.08.2014, 18:04 #11
Цитата Сообщение от snake32 Посмотреть сообщение
обладатели карт и готовые скачать и запустить тест( ~30 Мбайт ):
GeForce GTX 780
Завтра постараюсь сделать. Думаю, чтоб догнать HD 7970 в OpenCL, тут титан блек нужен.
0
snake32
1633 / 1087 / 158
Регистрация: 26.02.2009
Сообщений: 4,026
Записей в блоге: 5
15.08.2014, 18:09  [ТС] #12
Если кому интересно, код ядра:
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
InsomniaNsk
745 / 723 / 56
Регистрация: 13.02.2014
Сообщений: 4,139
15.08.2014, 23:11 #13
i5-3570k @ 4200, GTX 660 Ti @ 1136/6108
1
Миниатюры
Производительность OpenCL  
K2K
Дивананалитикаиксперд
7327 / 6182 / 639
Регистрация: 08.01.2013
Сообщений: 22,679
16.08.2014, 07:34 #14
Производительность OpenCL

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

Не по теме:

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

1
snake32
1633 / 1087 / 158
Регистрация: 26.02.2009
Сообщений: 4,026
Записей в блоге: 5
16.08.2014, 11:40  [ТС] #15
Цитата Сообщение от K2K Посмотреть сообщение
Если надо, кину координаты.
Кидай. Уж больно интересен результат.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2014, 11:40
Привет! Вот еще темы с ответами:

Opencl в go ? Существуют ли решения ? - OpenCL
Есть задача перевести вычисления Scrypt, sha256 , pbkdf2 на opencl для ускорения. Существуют ли решения для этого? Или же opencl не...

видеокарта openCL / cuda - OpenCL
Хочу научиться программировать с использованием gpu. Что по-вашему на данный момент и в будущем будет более перспективно и востребовано,...

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru