Pergunta

Onde posso encontrar informações sobre truques comuns do SIMD? Eu tenho um conjunto de instruções e sei como escrever um código SIMD não tricky, mas eu sei, o SIMD agora é muito mais poderoso. Ele pode conter o código sem ramificação condicional complexo.
Por exemplo (ARMv6), a seguinte sequência de instruções define cada byte de RD igual ao mínimo não assinado dos bytes correspondentes de RA e RB:

USUB8 Rd, Ra, Rb
SEL Rd, Rb, Ra

Links para tutoriais / técnicas incomuns também são boas :) ARMV6 é o mais interessante para mim, mas x86(Sse, ...)/Néon(no ARMV7)/outros também são bons.

Foi útil?

Solução

Um dos melhores recursos SIMD de todos os tempos foi a antiga lista de discussão Altivec. Embora o PowerPC/Altivec específico, eu suspeito que muito material desta lista seria de interesse geral para quem trabalha com outras arquiteturas SIMD. Infelizmente, essa lista parece agora estar extinta depois de ser transferida para um fórum no Power.org, mas você pode encontrar versões arquivadas. (Caso contrário, me avise - eu tenho praticamente todas as postagens de 2000 - 2007.)

Há também muitas informações potencialmente úteis sobre Altivec, SSE, Vectorização SIMD e desempenho em geral em http://developer.apple.com/hardwaredrivers/ve/index.html, boa parte dos quais pode ser transferível para outras arquiteturas SIMD.

Outras dicas

Experimente a AMD Sseplus Projeto no Sourceforge

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top