Форум программистов, компьютерный форум, киберфорум
OpenCL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.90/244: Рейтинг темы: голосов - 244, средняя оценка - 4.90
 Аватар для snake32
3590 / 1720 / 236
Регистрация: 26.02.2009
Сообщений: 8,709
Записей в блоге: 5

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

14.08.2014, 15:35. Показов 61983. Ответов 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
15977 / 10982 / 914
Регистрация: 08.01.2013
Сообщений: 39,446
03.11.2023, 11:43
Студворк — интернет-сервис помощи студентам
snake32, вот еще результат встройки R3 3200G. Я бы и 12500 прогнал, но тут без гемора никак.



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

0
 Аватар для snake32
3590 / 1720 / 236
Регистрация: 26.02.2009
Сообщений: 8,709
Записей в блоге: 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
3007 / 1310 / 6
Регистрация: 08.04.2017
Сообщений: 14,647
28.10.2024, 23:03
snake32, может, хоть с RTX 5090 я до второго места доберусь хотя бы?
0
 Аватар для snake32
3590 / 1720 / 236
Регистрация: 26.02.2009
Сообщений: 8,709
Записей в блоге: 5
29.10.2024, 00:12  [ТС]
Цитата Сообщение от Сергей1988 Посмотреть сообщение
может, хоть с RTX 5090 я до второго места доберусь хотя бы?
Если Хуанг в 128 раз не зарежит FP64 то скорее всего, +15% достаточно чтобы занять первое место.
Так то среди CPU думаю уже мог бы и первое занять с оптимизированным кодом и драйвером от Intel
Миниатюры
Производительность OpenCL  
0
 Аватар для Сергей1988
3007 / 1310 / 6
Регистрация: 08.04.2017
Сообщений: 14,647
29.10.2024, 00:19
snake32, это где такой тест?
Я же вроде пытался его прогнать, что-то не вышло.
0
 Аватар для snake32
3590 / 1720 / 236
Регистрация: 26.02.2009
Сообщений: 8,709
Записей в блоге: 5
29.10.2024, 00:29  [ТС]
Цитата Сообщение от Сергей1988 Посмотреть сообщение
Я же вроде пытался его прогнать, что-то не вышло.
Сначала драйвер от Intel надо ставить
0
 Аватар для Сергей1988
3007 / 1310 / 6
Регистрация: 08.04.2017
Сообщений: 14,647
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
Ответ Создать тему
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru