latency vs throughput em intel intrinsics
Acho que tenho um entendimento decente da diferença entre latência e taxa de transferência, em geral. No entanto, as implicações da latência na taxa de transferência de instruções não são claras para o Intel Intrinsics, principalmente ao usar várias chamadas intrínsecas sequencialmente (ou quase sequencialmente
Por exemplo, vamos considerar:
_mm_cmpestrc
@This tem uma latência de 11 e uma taxa de transferência de 7 em um processador Haswell. Se eu executasse essa instrução em um loop, obteria uma saída contínua por ciclo após 11 ciclos? Como isso exigiria a execução de 11 instruções de cada vez, e como eu tenho uma taxa de transferência de 7, fico sem "unidades de execução"?
Não tenho certeza de como usar a latência e a taxa de transferência, a não ser para ter uma ideia de quanto tempo uma única instrução levará em relação a uma versão diferente do códig