Эксперты компании oneFactor протестировали процессоры Intel Xeon Ice Lake с технологиеи? Intel SGX 2.0 для оценки ускорения процесса машинного обучения на собственнои? платформе SmartMachine по сравнению с процессорами Intel предыдущего поколения. Результат был получен более чем впечатляющии?: ускорение полного цикла обучения составило от 8 до 19 раз в зависимости от размера подаваемых на вход данных. В этои? статье oneFactor поделится методикои? и деталями тестирования.
О компании oneFactor
oneFactor – разработчик платформы SmartMachine для конфиденциального совместного машинного обучения на глобальном графе клиентских связей, которая дает возможность быстро создавать максимально точные сервисы. Технология, лежащая в основе платформы, была запатентована компанией еще в 2019 году.
SmartMachine позволяет конфиденциально объединять данные нескольких компании? и индустрии? с использованием аппаратного решения Intel SGX. Платформа запущена в промышленную эксплуатацию в конце 2020 года. С марта 2021 года технология oneFactor позволяет не только исполнять обученные модели в анклаве, но также выполнять их тренировки внутри анклава Intel SGX. На данныи? момент к SmartMachine уже подключен ряд крупнеи?ших по объему розничного кредитования россии?ских банков.
Тестовый сценарий
Один из основных сценариев работы платформы SmartMachine — безопасный тренинг моделей с использованием алгоритмов машинного обучения.
Для обучения используются зашифрованные датасеты в бинарном формате со случайными данными, которые генерируются скриптом на сервере и сохраняются в папку с датасетами /var/ds/1. Приложение с обучающим анклавом запускается в докер-контейнере и монтирует эту папку с датасетами в файловую систему контейнера.
Cценарий обучения
Для проведения бенчмарка выбран следующий сценарий обучения:
- Загрузка файла выборки targets от клиента платформы SmartMachine
- Подготовка датасетов с фичами для обучения
- Обучение модели
- Получение модели и оценка её качества.
- Расчёт результата для выборки targets.
Интеграция с платформой oneFactor, которая использует технологию SGX для обеспечения безопасных вычислений, идет через gRPC.
Конфигурации тестовых стендов
Диаграмма взаимодействия компонент
Конфигурация ноды тестового кластера на платформе oneFactor на базе Intel CPU c SGX версии 1.0:
CPU | Intel Xeon E3-1270v5 3.6 ГГц |
RAM | 64 ГБ DDR4 2133 MHz |
HDD | 2 ? 480 ГБ SSD Intel DC S3500 Series |
OS | Ubuntu 18.04 5.4.0-66-generic |
Extended feature bits (EAX=07H, ECX=0H)
eax: 0 ebx: 29c6fbf ecx: 0 edx: 9c002600
sgx available: 1
sgx launch control: 0
CPUID Leaf 12H, Sub-Leaf 0 of Intel SGX Capabilities (EAX=12H,ECX=0)
eax: 1 ebx: 0 ecx: 0 edx: 241f
sgx 1 supported: 1
sgx 2 supported: 0
MaxEnclaveSize_Not64: 1f
MaxEnclaveSize_64: 24 (16 MB)
Конфигурация сервера на базе Intel Ice Lake CPU c SGX версии 2.0, предоставленного компанией Intel, для проведения бенчмарка:
CPU | 2x Intel Ice Lake Xeon, 18 ядер, 2.5 ГГц |
RAM | 378 ГБ DDR4 2933 MHz |
HDD | 1 x M.2 NVMe 2TB |
OS | Ubuntu 18.04 5.4.0-66-generic |
Extended feature bits (EAX=07H, ECX=0H)
eax: 0 ebx: f3bfb7ef ecx: 40417f5e edx: bc040412
sgx available: 1
sgx launch control: 1
CPUID Leaf 12H, Sub-Leaf 0 of Intel SGX Capabilities (EAX=12H,ECX=0)
eax: 463 ebx: 1 ecx: 0 edx: 381f
sgx 1 supported: 1
sgx 2 supported: 1
MaxEnclaveSize_Not64: 1f
MaxEnclaveSize_64: 38 (256 GB)
Ключевая функциональность в SGX 2.0 с точки зрения дальнейшего развития платформы oneFactor — значительно увеличен максимально возможный размер анклава. Поддержка SGX 2.0 реализована в новых процессорах компании Intel — семействе Ice lake.
Результаты тестирования и выводы
Для обучения использовалось датасеты суммарным объёмом 3.6, 7.2 и 11 Гигабайт. Размеры результирующего датасета на котором обучались модели составляли 20 х 1500000, 20 х 3000000 и 20 х 4500000 соответственно (Матрицы N x M, где N — количество столбцов и M — количество строк). В среднем итераций/шагов обучения — 100-150.
Общий объем датасетов, Гб | Время исполнения сценариев тренировки, с. |
Время загрузки датасетов, с. | Время тренировки моделей, с. | |||
SGX 1.0 | SGX 2.0 | SGX 1.0 | SGX 2.0 | SGX 1.0 | SGX 2.0 | |
3,6 | 787,7 | 91,1 | 96,5 | 48,7 | 202,3 | 13,9 |
7,2 | 1499,8 | 162,1 | 192,7 | 94,9 | 288,2 | 18,9 |
11 | 4320,2 | 224,4 | 306 | 142,1 | 1942,5 | 23,2 |
Так, время, требуемое на одну итерацию обучения, включающую загрузку данных в анклав, их подготовку и преобразование, а также само обучение, при размере обучающей выборки 3,6 Гигабайт составило 787 секунд для SGX1 и 91 секунду для SGX2. При размере обучающей выборки равной 11 Гигабайт данное время составило уже 4320 секунд для SGX1 и 224 секунды для SGX2.
Полученные по результатам тестов показатели демонстрируют, что выигрыш по времени увеличивается при росте размеров обучающей выборки: при 3,6 Гб подаваемых на обучение выигрыш составил 8,6 раз; при 11 Гб подаваемых на обучение выигрыш составил уже 19 раз. Также следует учитывать, что для получения промышленной модели платформа SmartMachine производит в среднем 150 итераций и это даёт значительный выигрыш по времени обучения при использовании новых CPU ICX с поддержкой SGX2.
Таким образом, с точки зрения продуктов oneFactor, можно сделать следующие выводы.
- Ключевая компонента платформы SmartMachine, которая обеспечивает безопасное обучение алгоритмов машинного обучения, успешно работает на новых процессорах семейства Ice Lake Intel CPU с поддержкой SGX 2.0.
- Использование Intel SGX 2.0 позволит ускорить обучение моделей от 8 до 19 раз на одной итерации и существенно уменьшит TTM (time-to-market) по созданию новых моделей на платформе oneFactor.
- Использование Intel SGX 2.0 упростит процедуру масштабирования платформы oneFactor в пиковую нагрузку со стороны клиентов
NickViz
так а за счёт чего такое ускорение — можно пояснить было? а то сплошной oneFactor, SGX ускоряет, ускоряет SGX, Intel, ключевое, ускорение. 9 цифр в разных комбинациях повторяются 10 раз. график, таблица, потом для неграмотных своими словами описано.
spesso
Очередной «учёный изнасиловал журналиста»?
Первый конфиг 4 ядра 8 потоков и RAM 64 ГБ DDR4 2133 MHz против 18 ядер и 378 ГБ DDR4 2933 MHz, конешно всё дело в SGX 2.0?
saul Автор
Частота процессора и количество потоков в данном сценарии не играют существенной роли, так как все операции обучения и на SGX1 CPU и на SGX2 CPU происходили последовательно и использовался однопоточный анклав (TCSNum = 1) и основной прирост в скорости обучения достигается именно за счёт отсутствия EPC swapping (см. ниже).
beskaravaev
Не «журналист изнасиловал учёного»?
И да, тест на двух совершенно разных конфигурациях(кол-во ядер, ОЗУ, ССД) вообще имеет хоть какой-то смысл? Получается что-то вроде «Смотрите, наш новый 10-ти ядерный 20-ти поточный i9 с 128ГБ быстрой памяти быстрее старого 2-х ядерного пентиум с 4 ГБ памяти».
dmytro_p
Судя по спецификации, 2 x 18 ядер и 72 потока. А как вишенка — SATA SSD vs NVMe SSD.
saul Автор
Ускорение достигается за счёт увеличенного максимального размера анклава в SGX 2.0.
В SGX1 максимальный размер enclave page cache (EPC) составляет 128 Мегабайт и, если размер анклава его не превышает, то нет никакого пенальти по производительности. В SGX2.0 размер EPC составляет, как видно, уже 256 Гигабайт.
Для обучения качественных ML моделей используются датасеты большого размера и те данные, которые не помешаются в EPC анклава, хранятся в RAM в зашифрованном виде и для доступа к этим данным используется очень затратная операция EPC swapping.
beskaravaev
Спасибо за пояснение. Этого и комментария выше не хватало в самой статье. Т.е. из статьи не понятно за счёт чего достигается прирост производительности и не указано, что тест в однопотоке. Поэтому могут возникать неверные выводы о статье, особенно у человека не разбирающегося в ML(меня).