Для современных процессоров изучение ASM займет у вас много времени. Кроме того, при наличии всех различных версий SSE ваш код будет сильно зависеть от процессора.
Я довольно много работаю с процессором и обнаружил, что разница между компилятором Intel C ++ и g ++ обычно не так велика (максимум 15% или около того), и между Mac OS нет ощутимой разницы X, Windows и Linux.
Вам нужно будет оптимизировать свой код и улучшить свой алгоритм вручную. Боюсь, что нет "волшебной волшебной пыли", которая может сделать существующий код намного быстрее.
Если вы этого еще не сделали и заботитесь о производительности, вы ДОЛЖНЫ запустить свой код через хороший профилировщик (лично мне нравится kcachegrind & valgrind в Linux или Shark в Mac OS X. Я не знаю, что такое боюсь хорошо для windows).
Исходя из моего прошлого опыта, очень велика вероятность того, что какой-то метод отнимает 95% вашего процессорного времени, а простое изменение или добавление кэширования значительно улучшит вашу производительность. Аналогичным образом, если какой-либо метод занимает только 1% процессорного времени, никакая оптимизация не принесет вам ничего.