AMD
0
Вклад в тег
std::lock_guard guard(mMutex);
__declspec(thread) Random* random= nullptr;
class Random
{
public:
Random()
{
_rand_state = 0;
}
void srand(unsigned int const seed)
{
_rand_state = seed;
}
uint16_t rand()
{
_rand_state = _rand_state * 214013 + 2531011;
return (_rand_state >> 16) & RAND_MAX;
}
private:
uint32_t _rand_state;
}
4 млн. итераций AMD 32 потока = 4,05 сек. Загрузка CPU 45%
4 млн. итераций AMD 64 потока = 3,61 сек. Загрузка CPU 47%
4 млн. итераций Intel 10 потоков = 4,01 сек. Загрузка CPU 75%
4 млн. итераций Intel 20 потока = 2,61 сек. Загрузка CPU 100%
4 млн. итераций AMD 32 потока = 1,25 сек. Загрузка CPU 60% ( 1 поток на физическое ядро )
4 млн. итераций AMD 64 потока = 0,71 сек. Загрузка CPU 100% ( 1 поток на физическое ядро + HP )
4 млн. итераций Intel 10 потоков = 2,8 сек. Загрузка CPU 70% ( 1 поток на физическое ядро )
4 млн. итераций Intel 20 потока = 2,1 сек. Загрузка CPU 100% ( 1 поток на физическое ядро + HP )