Transactional Memory уже завтра

Nov 29, 2012 13:31

Я слоупок. Оказывается ещё в феврале Intel выктаил спецификацию т.н. Intel TSX. И вроде как процессоры "haswell", которые поддерживают TSX уже начали штамповать и скоро вывалят на прилавки. У реализации есть несколько ограничений, самые существенные - всё работает с точностью до кешлайна (64byte) и все операции с памятью под одной транзакцией скорее всего должны помещаться в L1 (если повезёт - в L2). Несмотря на ограничения скоро можно будет не упихивать всё lock-free в один CAS(), а писать в более прямолинейном стиле и работать lock-free будет существенно быстрее. Смущает только настойчивая рекомендация Intel иметь обходной путь с честным mutex-ом (см. полную спецификацию TSX в разделе 8 (pdf файл)). Будем надеяться, что на по факту всё будет работать и без "обязательного" fallback-а, если число задействованных кешлайнов меньше ассоциативности L1 пополам (вроде L1 шарится между 2мя потоками в hyper-threading), а forward progress можно будет гарантировать одинаковым порядком записи в кешлайны разными транзакциями. Также умиляют всякие приколы типа "смена значения флага DF приводит к откату транзакции". Но в целом это очень круто, шортим AMD :)
Previous post Next post
Up