Это замечание относится не требуют буферов TLB для того, чтобы получить доступ к оперативной памяти тегов и увидеть, если есть попадание в кэше, поэтому запросы, которые попали в кэше немного быстрее. Если промахи доступа в кэше, то запрос должен пройти через таблицу страниц (ускоренную с помощью буферов TLB) для того, чтобы получить доступ к правильной ячейке памяти.
Спасибо за объяснение. Будет ли поддержка больших страниц неуместными для GCN ассемблере код, который загружает данные Uncacheable как ethash DAG с помощью FLAT_LOAD_DWORD с SLC и GLC бит установлен? По обходя L1 & L2, что должно означать пропуск доступ к тегу RAM и таблицы страниц. На самом деле я не пробовал сам еще, но комментарии Wolf0 и zawawa казалось, сказать, что это было на самом деле немного медленнее.
Медленнее действительно. одна GLC лучше. одна SLC, а также SLC + КЗС хуже, чем только КЗС.
Кстати, я, наконец, решил посмотреть на то, почему Claymore-х "КАК М" Ядро для Элсмира так задница: Получите это - он на самом деле не сделать это правильно, так как в целом вещь в ASM, как он (возможно) следует. Это вывод компилятора AMD OpenCL (с использованием "-legacy" переключатель, чтобы сделать его использовать старую версию), а затем переделаны немного. Он даже использует LDS ... WTF. Он ДЕЛАЕТ воспользоваться ds_swizzle_b32, но он по-прежнему рен тратить много местных MEM записи + некоторые читает, и ds_swizzle_b32 есть (IIRC) полной скорости, но несмотря на это, он тратить 4 часов за когда это можно было бы сделать лучше. Кроме того - это заставило меня смеяться IRL - его v10.0 шахтер ищет ядро, которое не существует. Я был на самом деле Хелла запутаться в течение минуты - двойной и тройной проверили декодированный GCN файл ядра (извлеченный из памяти процесса шахтера) - но, конечно, это не было. Итак, я, наконец, понял, давайте проверим возвращаемое значение clCreateKernel () ... конечно, она возвращает CL_INVALID_KERNEL_NAME (-46). По-видимому, шахтер (очевидно) считает, что это ошибка будет нефатальной и продолжается ... но почему кровавый ебать это там?
Спасибо за подтверждение. Таким образом, в обход L1 быстрее, но в обход L2 медленнее. Но ускорение промахов кэша L2 с большими таблицами страниц быстрее ...
Согласно GCN архитектуре документов, L2 делает больше, чем просто кэш, обработки вещей, такие как глобальный Атомикс. Теперь я подозреваю, что он также участвует в организации очередей и арбитража для DRAM доступа из КС, который бы объяснить замедление с использованием SLC.
Что касается Claymore, с тех пор как я впервые посмотрел на своих equihash ядер, я думал, что он хак. Он, кажется, получает большую часть своих идей от других людей, а не пытаться полностью понять аппаратный графический процессор и OpenCL компилятора. Подстройка вывода иша компилятора является то, что zawawa обсуждал в начале этого года (в дополнении к LLVM работе, чтобы получить встроенную ассемблерную работу), так что я подозреваю, клеймор только что получил идею от чтения сообщения zawawa в.