Przeczytałem here, że Intel wprowadził SSE 4.2 instructions
w celu przyspieszenia przetwarzania ciągów.Czy gcc używa instrukcji Intel SSE 4.2 do przetwarzania tekstu, jeśli są dostępne?
Cytat z artykułu:
GSS 4.2 zestaw instrukcji, pierwszy realizowany w i7 Intel Core zapewnia ciąg i instrukcje przetwarzania tekstu (STTNI), które wykorzystują operacji SIMD dla danych znakowych przetwarzanie. Chociaż pierwotnie stworzony w celu przyspieszenia przetwarzania łańcuchów, tekstu i XML, nowe potężne możliwości tych instrukcji są użyteczne poza domenami i warto ponownie przejrzeć etapy wyszukiwania i rozpoznawania różnych aplikacji wykorzystujących STTNI do ulepszenia wydajność
- czy gcc skorzystać z tych instrukcji, jeśli są one dostępne?
- Jeśli tak, to która wersja?
- Jeśli tak, to czy są dostępne biblioteki open source , które to oferują?
Wątpię, że GCC będzie w stanie rozpoznać konkretnego zadania jako przetwarzanie testowe i używać ich automatycznie. Ale nie byłbym zaskoczony, gdyby funkcje takie jak 'strcpy()' zostały wykonane przy użyciu SSE4.2 przez kompilator. – Mysticial
@Mysticial Myślę, że miałem na myśli 'strcpy' et al; ale co ważniejsze 'atoi' itp. i ich odpowiedniki C++ 11' std :: stoi' etc –
zobacz http://stackoverflow.com/questions/7919304/gcc-sse-code-optimization Musisz powiedzieć gcc. Biblioteki są już skompilowane, więc tylko Twój kod zostanie zmieniony, chyba że przekompilujesz biblioteki. – imel96