Phần mềm đồ họa 3D của tôi, được viết bằng C# bằng cách sử dụng SlimDX, thực hiện rất nhiều thao tác vectơ trên CPU. (Trong tình huống cụ thể này, bạn không thể tải công việc xuống GPU).Fast Vector Math in .NET - Các tùy chọn là gì?
Làm cách nào để làm cho phép tính vectơ của tôi nhanh hơn? Cho đến nay, tôi đã tìm thấy các phương pháp này:
- Chạy trên Mono thay vì Microsoft .NET, vì chúng có hỗ trợ SIMD. Không phải là một lựa chọn cho dự án này.
- SlimGen, một dự án tiêm mã toán học hiệu suất cao khi chạy. Thật không may, dự án vẫn chưa ở trong trạng thái có thể sử dụng được.
- Viết DLL trong C++ bằng trình biên dịch sử dụng lệnh SSE. Interop với DLL đó từ C#.
Có bất kỳ tùy chọn nào khác để thực hiện phép toán vectơ nhanh hơn trong .NET không?
Làm thế nào là "chủ đề không chính thức" này? Đôi khi bạn có đôi lúc khó chịu. –
Đa luồng (hoặc Open MP) có thể hữu ích. Tôi không biết nếu bạn có thể sử dụng Open MP trên. NET, nhưng tôi muốn giới thiệu một dll bản địa anyway nếu bạn có thể giữ tổng số tiền của p/gọi chức năng gọi thấp. – dialer
Trả lời trễ Tôi biết nhưng bạn có thể muốn xem xét Yeppp!Thư viện SIMD – user9993