Описание тега rdtsc
RDTSC is the x86 read time stamp counter instruction.
1
ответ
Как рассчитать частоту ядер процессора
Я пытаюсь использовать RDTSC, но кажется, что мой подход может быть неправильным для получения скорости ядра: #include "stdafx.h" #include <windows.h> #include <process.h> #include <iostream> using namespace std; struct Core { int …
23 апр '14 в 17:55
1
ответ
Тестирование ассемблера на Intel с использованием rdtsc дает странные ответы, почему?
Некоторое время назад я задал вопрос о переполнении стека и показал, как выполнить код операции rdtsc в C++. Недавно я создал тестовую функцию, используя rdtsc следующим образом: inline unsigned long long rdtsc() { unsigned int lo, hi; asm volatile …
23 сен '18 в 12:07
2
ответа
Подсчет циклов для нано-сна с использованием RDTSC
Я пытаюсь увидеть, сколько циклов занимает 1 наносекунда на моем ноутбуке. Конфигурация ноутбука: Процессор: Intel Centrino Duo 2,0 ГГц ( T7200) Память: 2 ГБ Ниже приведены показатели: 1 секунда занимает: 1995198000 (что близко к 2 миллиардам тиков,…
30 окт '14 в 13:22
1
ответ
CPP Linux: о RDTSC
Я использую следующую функцию в моем коде: static __inline__ unsigned long long rdtsc(void){ unsigned long long int x; __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x)); return x; } Эта функция возвращает количество тактов с момента последней загрузк…
16 янв '12 в 14:17
3
ответа
На процессоре с constant_tsc и nonstop_tsc почему мое время смещается?
Я запускаю этот тест на процессоре с constant_tsc а также nonstop_tsc $ grep -m 1 ^flags /proc/cpuinfo | sed 's/ /\n/g' | egrep "constant_tsc|nonstop_tsc" constant_tsc nonstop_tsc Шаг 1: Рассчитайте частоту тиков tsc: Я рассчитываю _ticks_per_ns в к…
25 авг '16 в 17:07
2
ответа
Возвращаемое значение rdtsc: _always_ mod 10 == 0 для Atom N450.
На моем устройстве E8200 этого не происходит, но на моем нетбуке Atom N450 (оба работают под управлением OpenSuse 11.2) всякий раз, когда я читаю TSC процессора, возвращаемое значение mod 10 == 0т.е. без остатка делится на 10. Я использую значение R…
12 сен '12 в 17:58
1
ответ
RDTSCP в NASM всегда возвращает одно и то же значение
Я использую RDTSC и RDTSCP в NASM для измерения машинных циклов для различных инструкций на языке ассемблера, чтобы помочь в оптимизации. Я прочитал "Как оценить время выполнения кода на архитектурах наборов инструкций Intel IA-32 и IA-64" Габриэле …
10 фев '19 в 21:43
2
ответа
Затраты времени _mm_lfence() не являются детерминированными?
Я пытаюсь определить время, необходимое для чтения элемента, чтобы убедиться, что это попадание в кэш или его отсутствие. чтобы чтение было в порядке, я использую функцию _mm_lfence(). Я получил неожиданные результаты, и после проверки я увидел, что…
04 фев '19 в 17:05
0
ответов
Преобразование циклов ЦП в секунды в программировании на С
Я пытался выяснить, существует ли какой-либо простой способ преобразования циклов ЦП, полученных в C, с использованием функции rdtsc() во время в секундах. например:- unsigned long long start, stop; start = rdtsc(); stop = rdtsc(); printf(" CPU CYCL…
10 дек '17 в 01:18
2
ответа
Рассчитать системное время, используя rdtsc
Предположим, что все ядра в моем процессоре имеют одинаковую частоту, технически я могу синхронизировать пары счетчиков системного времени и меток времени для каждого ядра каждую миллисекунду или около того. Затем, основываясь на текущем ядре, с кот…
12 фев '17 в 16:14
1
ответ
Потерянные циклы на Intel? Несоответствие между rdtsc и CPU_CLK_UNHALTED.REF_TSC
На последних процессорах (по крайней мере, в последнее десятилетие или около того) Intel предложила три аппаратных счетчика производительности с фиксированной функцией в дополнение к различным настраиваемым счетчикам производительности. Три фиксиров…
02 авг '17 в 22:41
5
ответов
Рдцк, слишком много циклов
#include <stdio.h> static inline unsigned long long tick() { unsigned long long d; __asm__ __volatile__ ("rdtsc" : "=A" (d) ); return d; } int main() { long long res; res=tick(); res=tick()-res; printf("%d",res); return 0; } Я скомпилировал эт…
30 ноя '11 в 08:01
1
ответ
Как вызывать две функции одну за другой с минимальной задержкой?
Я реализовал быструю функцию, которая возвращает время (используя rdtsc), давайте назовем это fast_time(), У меня есть для справки оригинальная функция, которая использует системный вызов, давайте назовем его system_time(), Моя программа использует …
22 июн '14 в 12:58
0
ответов
Что случилось с поведением rdtscp с "половиной забора"?
В течение многих лет процессоры x86 поддерживали rdtsc инструкция, которая читает "счетчик меток времени" текущего процессора. Точное определение этого счетчика со временем менялось, но в современных процессорах это счетчик, который увеличивается с …
04 сен '18 в 03:53
4
ответа
Получить количество тактов процессора?
Я видел этот пост на SO, который содержит код C, чтобы получить последний счетчик циклов ЦП: Профилирование на основе подсчета циклов процессора в C/C++ Linux x86_64 Есть ли способ, которым я могу использовать этот код в C++ (приветствуются решения …
07 дек '12 в 23:18
2
ответа
rdtsc хронометраж для измерения функции
Я хочу, чтобы время вызова функции с rdtsc. Поэтому я измерил это двумя способами следующим образом. Назовите это в цикле. Объедините каждую разность rdtsc в цикле и разделите на количество вызовов. (Скажем, это N) Назовите это в цикле. Получите раз…
22 мар '15 в 01:20
1
ответ
Ошибка профилирования со встроенным ассемблером в коде C++
Я нашел эту статью об эффективности std::vector::push_back, связанный код можно найти здесь. Я попробовал это сам, и я получил illegal instruction (core dumped), GDB указывает на ошибку в строке 37. Я скомпилировал с помощью gcc 4.7.2, на компьютере…
12 апр '13 в 09:23
1
ответ
Неопределенная ссылка на rdtsc
Я пишу код, который создает деревья и разные способы создания деревьев. Я не могу заставить rdtsc нормально работать, хотя. Вот мой код: #include <stdio.h> #include <stdlib.h> #define SIZE 10 struct tnode { int val; struct tnode *left; s…
28 ноя '12 в 00:46
1
ответ
Использование rdtsc() в моей программе для получения количества тактов для операций с одним и двумя словами?
Теоретически стоимость сложения / вычитания двойного слова берется 2 раза за одно слово. Аналогично, соотношение затрат умножения одного слова к сложению принимается равным 3. Я написал следующую программу на C, использующую GCC на Ubuntu LTS 14.04,…
14 апр '16 в 13:07
1
ответ
Использование счетчика меток времени и clock_gettime для пропуска кэша
В качестве продолжения этой темы для вычисления задержки памяти я написал следующий код, используя _mm_clflush, __rdtsc а также _mm_lfence (который основан на коде из этого вопроса / ответа). Как видно из кода, я сначала загружаю массив в кеш. Затем…
22 авг '18 в 09:32