Câu trả lời:
Bạn cũng có thể tự mình thực hiện bằng cách sử dụng các hướng dẫn SSE (Truyền trực tuyến SIMD) và nội tại (tệp * mmintrin.h) của trình biên dịch / Proc.
Hướng dẫn
Dưới đây là một ví dụ về cách sử dụng các hướng dẫn SSE với lắp ráp:
http://neilkemp.us/src/sse_tutorial/sse_tutorial.html
Và đây là hướng dẫn về cách sử dụng các hướng dẫn SSE với nội tại:
http://www.codeproject.com/KB/recipes/sseintro.aspx
Hướng dẫn thực tế để sử dụng SSE SIMD với C ++:
http://sci.tuomastonteri.fi/programming/sse/printable
Thông tin hữu ích
Tài liệu tham khảo Intel C ++ Intrinsics (hữu ích để nhận danh sách hướng dẫn):
http://cache-www.intel.com/cd/00/00/34/76/347603_347603.pdf
SSE & SSE2 Hỗ trợ nội tại cho các bộ hướng dẫn nâng cao được hỗ trợ bởi bộ xử lý Intel và AMD (hữu ích cho tất cả các loại thông tin liên quan đến SSE và SIMD): http://msdn.microsoft.com/en-us/l Library / y0dh78ez% 28v =
so với.71% 29.aspx
Danh sách hướng dẫn tổng thể và thông tin về SSE, SSE2, SSE3, SSSE3, SSE4, 3DNow, v.v (các phiên bản khác nhau của SSE cho kiến trúc Proc khác nhau):
http://softpixel.com/~cwright/programming/simd/sse.php
Nếu bạn thích khung đại số tuyến tính, tôi đã nghe về Eigen:
http : // eigen.tuxf Family.org/
http://eigen.tuxfamily.org/index.php?title=FAQ#Vectorization (về hỗ trợ SIMD)
Và cuối cùng nếu bạn cần thêm câu trả lời về C ++ SIMD Framework, đây là liên kết StackOverflow . (Khung SIMD C ++ SSE):
/programming/4953121/c-sse-simd-framework
Cả hai vectơ / ma trận này đều được tối ưu hóa mã SSE2, Sony cũng có Altivec cho công cụ biên dịch PowerPC:
Sony vectormath SSE2 và Altivec
Bullet's tuyến tính SSE2
bằng cách nói một chút, tôi nghĩ bạn có thể sử dụng thư viện toán học của viên đạn, bản thân viên đạn là một công cụ vật lý mã nguồn mở và dường như có một thư viện toán học mạnh mẽ bên cạnh nó. đây là một lối tắt để tải xuống liên kết http://sourceforge.net/projects/bONS/files/SIMD%20and%20amp_%20Vector%20Math%20l Library / faxd /Tải xuống
simdvectormath
tệp cụ thể trong tệp đạn
Nó chưa ở đây. Nhưng sẽ có một thư viện boost.simd (hy vọng). Hãy xem bài trình bày này (được đưa ra tuần trước tại boostcon)
https://github.com/boostcon/2011_presentations/blob/master/thu/simd.pdf
Mặc dù không tập trung chính xác vào việc sử dụng SIMD, tôi thấy glm là một thư viện toán học đa năng rất tốt khi nói đến các trò chơi. Nó không hỗ trợ các ma trận tùy ý và tương tự, nhưng nó có các tính năng được sắp xếp hợp lý để sử dụng với đồ họa 3D và nó có các tính năng để cho phép SSE cũng như triển khai các thuật toán phổ biến nhanh hơn.
Mặc dù nó được thiết kế đặc biệt để sử dụng với OpenGL, tôi đã thấy nó rất hữu ích cho nhiều tác vụ khác nhau. Nó sử dụng quá nhiều toán tử, điều này làm cho nó rất dễ sử dụng và duy trì mã sử dụng nó.
Nó dựa trên ngôn ngữ OpenGL GLSL, có tài liệu rất chắc chắn và bất kỳ sự khác biệt nào cũng được ghi lại.