Как рассчитать MFLOPS, используя Valgrind, зная время выполнения? - PullRequest
1 голос
/ 20 апреля 2020

У меня есть программа, которая умножает три матрицы, и я знаю время выполнения. Знайте, что я должен вычислить MFLOPS программы, мне сказали использовать Valgrind, но я не знаю, что делать с выводом Valgrind. Несколько советов было бы замечательно.

Редактировать Я знаю, что valgrind сообщает динамические c инструкции, но мне просто нужно число операций с плавающей запятой. Это возможно?

1 Ответ

0 голосов
/ 20 апреля 2020

Вам не нужен Valgrind, инструмент для выявления ошибок памяти.

Вместо этого посмотрите вычислительную сложность алгоритма, который вы использовали здесь:

https://en.wikipedia.org/wiki/Matrix_multiplication#Computational_complexity

Который оценивает общее количество выполненных операций. Затем вы делите общее количество операций на время выполнения вашей программы, что дает ответ в виде операций с плавающей запятой в секунду или просто FLOPS. Чтобы получить MFLOPS, вы делите на миллион.

Обратите внимание, что в зависимости от того, что именно вы пытаетесь измерить, вы должны либо просто измерить время выполнения интересующего вас сегмента кода, либо измерить все время выполнения программы, но в любом случае вы должны понимать, что вы делаете и почему это уместно. Как точно рассчитать время программы или разделов программы - это отдельная тема c, о которой мы уже спрашивали ранее.

...