ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1161908 Топик полностью
Kceния (07.01.2022 13:18, просмотров: 181) ответил Evgeny_CD на Достаточно завести сопроцессор переключения контекста. Переключили мы поток или задачу. Это довольно сложный набор действий. В это время отдельный блок сохраняет и восстанавливает мириады регистров. В целом, OS надо поддерживать на уровне специализированных команд процессора.
Тогда потребуется по сопроцессору на каждый процесс/поток. А если задач, использующих AVX512, больше числа сопроцессоров? Что тогда? Попытка выделить из ядра сопроцессор проблему не решит, т.к. любая расчетная FP-задача обязательно содержит в себе еще и x86/64-код, а потому разделить их никак не получится. Суть проблемы в том, что вытесняющая многозадачность нужна для организации очереди на обслуживание, которая длиннее число ядер. Противном случае не было бы 

необходимости передвигать процессы по ядрам. А если все эти процессы по умолчанию содержат в себе FP-операции, перегружать придется как ядра, так и сопроцессоры (если их отделить от ядер и распределять отдельно). Причем, ситуацию усугубляет то, что обычная FP-арифметика работает на младшей части AVX512-регитстров. А потому даже если новому процессу захотелось число пи умножить на 2, то AVX512-регистрам предыдущей задачи придется собирать вещички, готовясь к переезду в память.