Thư viện SIMD C ++ [đã đóng]


14

Trước đây, tôi đã sử dụng Visual Studio với thư viện toán học DirectX XNA. Bây giờ, tôi đang sử dụng bộ sưu tập trình biên dịch GNU. Bất cứ ai có thể tư vấn một thư viện toán học SIMD với một tài liệu tốt?

Câu trả lời:


15

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)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ảm ơn bạn, nhưng tôi không có thời gian để làm quá nhiều thói quen.
itun

Có lẽ lần sau, nó không khó đến thế;). Tuy nhiên tôi đã thêm một vài liên kết ở phía dưới có thể giúp ích.
Valkea

Trả lời gọn gàng. Toán SIMD rất vui. Tôi nhớ những ngày tôi đang sử dụng SSE để tăng tốc raytracing. Nhưng tại sao phải chơi đồ chơi nhỏ, nếu chúng ta có GPGPU ngay bây giờ :)
Notabene


1

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


Tôi đã nhìn thấy nó, nhưng làm thế nào để biên dịch nó tôi không hiểu
itun

3
Thay vì chỉ bán một liên kết tải xuống, có lẽ một liên kết đến trang web thực tế với tài liệu, wiki và tài liệu tham khảo API có thể hữu ích hơn. Bulletphysics.org
Bob

@Bob tôi chỉ muốn thể hiện liên kết tải xuống đó vì phải mất một thời gian để tìm simdvectormathtệp cụ thể trong tệp đạn
Ali1S232


0

AMD có dự án SSEPlus mã nguồn mở , mặc dù tôi chưa bao giờ sử dụng nó nên tôi không thể nhận xét về chất lượng hoặc khả năng ứng dụng của nó.


0

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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.