Приведу аналогию. Некий студент участвует в переписи населения. Ему нужно как можно быстрее обойти пять адресов. Что важнее для достижения максимальной скорости — быстрые ноги или оптимально построенный маршрут? Изменится ли ответ для ста адресов? А для одного адреса? Что поменяется, если студентов будет несколько?
В данном примере скорость ног это hardware, а логика построения маршрута это software. Конечно, чем быстрее ноги, тем быстрее он будет обходить адреса. Но даже самых быстрых ног не хватит на большом количестве адресов, если маршрут построен не оптимально.
Подобная зависимость времени вычислений от объёма входных данных в информатике называется "временной сложностью", или "эффективностью алгоритма". Нормой считается линейная сложность, когда затраченное время прямо пропорционально количеству входных данных. Есть методы оптимизации алгоритмов, позволяющие достичь логарифмической зависимости (обычно имеется в виду логарифм по основанию 2, то есть при увеличении входных в два раза время увеличивается на константу). Иногда время пропорционально квадрату или кубу объёма данных — и тогда даже самое быстрое железо начинает "тупить" на больших объёмах. А уж если зависимость экспоненциальная, то никакое железо не поможет, такой алгоритм считается плохим.
Современные кремниевые процессоры почти достигли предела быстродействия. Их нельзя ускорить ещё больше, не меняя фундаментально принцип их работы. Поэтому последние 10-15 лет увеличение скорости достигается в основном за счёт распараллеливания вычислений и оптимизации алгоритмов, а не за счёт "разгона" самих процессоров.
Конечно, для полноты картины стоило бы рассказать про “бутылочное горлышко” архитектуры фон Неймана, рассмотреть альтернативные архитектуры, упомянуть квантовые компьютеры, и ещё много чего. Но мне кажется это уже выходит за рамки изначального вопроса.