Jump to content

bitcount em C, já implementaram, vale a pena?


Omesmo

Recommended Posts

12 minutos atrás, Omesmo disse:

se nao me engano se voce nao ativar a instrução SIMD o compilador vai usar oq tiver
tipo voce tem que liberar uso de mmx e sse com -mavx -msse4.2 -mpopcnt

Minha dúvida é se é portável, será que numa máquina amd vai ter suporte a essa função?

Vou testar só mais tarde, agora vou sair.

 

14 minutos atrás, rockcavera disse:

Uma tabela de consulta de 256 é mais provável que seja carregada no cache mais rápido do processador em loops longos que uma tabela de 65535 (16bits).

Faz sentido, por isso o aumento na velocidade.

  • Like 1
Link to comment
Share on other sites

18 minutos atrás, sam88 disse:

Minha dúvida é se é portável, será que numa máquina amd vai ter suporte a essa função?

Vou testar só mais tarde, agora vou sair

Minha postagem sobre a comparação dos métodos fala a partir de qual processador Intel e Amd a instrução está presente. Então, portanto, não é portável. Mas você pode criar um ponteiro que na inicialização do programa defina se chama popcnt ou outra função de contagem se o processador não suportar. Claro que ai se tem o custo de chamada de procedimento. Outra forma é disponibilizar dois executáveis, sendo um para popcnt e outro com outra forma de contagem portável.

  • Like 3
Link to comment
Share on other sites

5 horas atrás, rockcavera disse:

@sam88o cpusam do github é tu?

Isso, sou eu.

8 horas atrás, rockcavera disse:

Minha postagem sobre a comparação dos métodos fala a partir de qual processador Intel e Amd a instrução está presente. Então, portanto, não é portável. 

Entendo, nesse caso não posso usar porque esse meu código faz parte de uma aplicação comercial. Vou deixar com a lookup table enquanto não acho uma solução melhor.

 

Mas obrigado ai pelos exclarecimentos e ao @Omesmo também.

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...