|
CUDA: shared memory
|
|||
---|---|---|---|
#18+
На хабре есть статься (https://habr.com/ru/post/55461/) о том, как надо (как было бы хорошо и полезно) применять shared memory cuda-устройства. Почитал, осознал, вдохновился, скопипастил, собрал, запустил и... обломался. Ну никак не удается заставить cuda-устройство (GTX850M) работать с применением shared-memory быстрее, нежели без применения таковой. Наоборот, с применением shared-memory производительность падает практически в два раза, причем на разных конфигурациях сетки и блоков. В чем может быть дело? зы: хотел задать вопрос на хабре под самой статьей, но статья старая и как бы нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2021, 01:37 |
|
CUDA: shared memory
|
|||
---|---|---|---|
#18+
в догонку.. уже имеется обсуждение подобного вопроса на stackoverflow. не все из сказанного там мне понятно, но некий Tom (сотрудник NVIDIA) где-то в середине обсуждения указывает на то, что (цитата): Tom (сотрудник NVIDIA)Совместно используемая память также может быть полезна для преобразования неэффективного шаблона доступа в хорошо согласованный шаблон, например, для операции транспонирования - Том 22 апр. Представляется, что это должно непосредственно коррелировать с примером реализации алгоритма, приведенного в статье на хабре. Однако, по факту алгоритм транспонирования матрицы с применением shared-memory не показывает выдающихся результатов. Хотелось бы понять, почему... Кроме того, хотелось бы понять, что именно Tom (сотрудник NVIDIA) подразумевает под такими терминами, как "неэффективный шаблон доступа" и "хорошо согласованный шаблон". Каковы критерии отнесения шаблона доступа к памяти к той или иной категории? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2021, 01:48 |
|
CUDA: shared memory
|
|||
---|---|---|---|
#18+
RubinDm Ну никак не удается заставить cuda-устройство (GTX850M) работать с применением shared-memory быстрее, нежели без применения таковой. Наоборот, с применением shared-memory производительность падает практически в два раза, причем на разных конфигурациях сетки и блоков. В чем может быть дело? На основании чего ожидается ускорение? Ты создал узкое место, которое требует синхронизации доступа, как следствие процессоры обращающиеся к shared-memory вынуждены простаивать в очереди, ожидая чтения/записи туда. Архитектуру процессоров на видеокарте я не изучал, но думаю что у каждого ядра есть свой кэш, как и основного проца. В таких случаях при записи одним ядром в shared-memory она автоматически становится невалидной в кэшах других ядер и они вынуждены ее перечитывать из кэша ниже или основной памяти, что тоже скорости не добавляет. Для кэша используется более быстрая память, поэтому чтение из памяти раз в 5 медленнее чем из кэша. Закон Амдала не обманешь. Там где можешь заставить потоки алгоритма работать независимо - надо это делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2021, 07:35 |
|
CUDA: shared memory
|
|||
---|---|---|---|
#18+
В 2000х я находил статью, где предлагалось на headless unix серверах оснащенных современной видяшкой использовать видеопамять как /tmp диск. В самом деле. Если консоль - только in text mode, тогда банки видео-памяти не юзаются и ее можно как-то подключить как блочное устройство. Благо драйвер был написан. И намапить файловоую систему на блочное устройство было делом утилитарным. Это пожалуй было полезно как-раз для 2000х когда диски были еще только магнитные. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2021, 12:11 |
|
CUDA: shared memory
|
|||
---|---|---|---|
#18+
mayton, как интересно. Жаль только, что в решении поставленных вопросов неприменимо. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2021, 16:47 |
|
CUDA: shared memory
|
|||
---|---|---|---|
#18+
RubinDm, авторКак видно, GPU версия с разделяемой памятью выполняется почти в 20 раз быстрее, чем версия на CPU. логично, что GPU со своей памятью управляется быстрее но это если не таскать данные CPU-GPU авторКоличество перемещений данных между CPU и GPU по-возможности необходимо свести к минимуму. а вы, что делать-то пытались? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 08:45 |
|
|
start [/forum/topic.php?fid=16&msg=40054407&tid=1339680]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
158ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 25ms |
total: | 277ms |
0 / 0 |