История изменений
Исправление hateyoufeel, (текущая версия) :
насколько понял, теперь он таки будет уметь отслеживать некоторые побочные эффекты
Он в принципе это не может делать, потому что есть побочные библиотеки. У C++ в типе функции не содержится подобной информации.
Есть процы, где работает прямо сейчас: Haswell-EX, Broadwell-C. Наверное, скоро починят, и будет всем счастье.
На Xeon E7 v3 работает, только они стоят от $1.2k за чип.
На самом деле, с аппаратной транзакционной памятью будет ещё хуже чем с STM. Если ты внимательно почитаешь спеки TSX, заметишь, что многие инструкции процессора гарантированно вызывают отмену транзакции. Среди подобных инструкций есть, например, syscall. Добавь к этому тот факт, что некоторые функции в libc могут быть реализованы как через сискол так и без него (gettimeofday - каноничный пример), и получится, что использование транзакционной памяти в C/C++ превратится в непрекращающуюся стрельбу себе по ногам из пулемёта.
Исправление hateyoufeel, :
насколько понял, теперь он таки будет уметь отслеживать некоторые побочные эффекты
Он в принципе это не может делать, потому что есть побочные библиотеки. У C++ в типе функции не содержится подобной информации.
Есть процы, где работает прямо сейчас: Haswell-EX, Broadwell-C. Наверное, скоро починят, и будет всем счастье.
На Xeon E7 v3 работает, только они стоят от $1.2k за чип.
На самом деле, с аппаратной транзакционной памятью будет ещё хуже чем с STM. Если ты внимательно почитаешь спеки TSX, заметишь, что многие инструкции процессора гарантированно вызывают отмену транзакции. Среди подобных инструкций есть, например, syscall. Добавь к этому тот факт, что некоторые функции в libc могут быть реазилованы как через сискол так и без него (gettimeofday - каноничный пример), и получится, что использование транзакционной памяти в C/C++ превратится в непрекращающуюся стрельбу себе по ногам из пулемёта.
Исходная версия hateyoufeel, :
насколько понял, теперь он таки будет уметь отслеживать некоторые побочные эффекты
Он в принципе это не может делать, потому что есть побочные библиотеки. У C++ в типе функции не содержится подобной информации.
Есть процы, где работает прямо сейчас: Haswell-EX, Broadwell-C. Наверное, скоро починят, и будет всем счастье.
На Xeon E7 v3 работает, только они стоят от $1.2k за чип.
На самом деле, с аппаратной транзакционной памятью будет ещё хуже. Если ты внимательно почитаешь спеки TSX, заметишь, что многие инструкции процессора гарантированно вызывают отмену транзакции. Среди подобных инструкций есть, например, syscall. Добавь к этому тот факт, что некоторые функции в libc могут быть реазилованы как через сискол так и без него (gettimeofday - каноничный пример), и получится, что использование транзакционной памяти в C/C++ превратится в непрекращающуюся стрельбу себе по ногам из пулемёта.