Мое программное обеспечение для 3D-графики, написанное на C# с использованием SlimDX, выполняет множество векторных операций с процессором. (В этой конкретной ситуации невозможно разгрузить работу на GPU).Быстрая векторная математика в .NET. Каковы варианты?
Как я могу сделать свою векторную математику быстрее? До сих пор я нашел эти подходы:
- Выполняется в Mono вместо Microsoft .NET, поскольку у них есть поддержка SIMD. Не вариант для этого проекта.
- SlimGen, проект, который вводит высокопроизводительный математический код во время выполнения. К сожалению, проект еще не в состоянии использования.
- Напишите DLL в C++, используя компилятор, который использует инструкции SSE. Взаимодействие с этой DLL из C#.
Есть ли другие возможности для ускорения векторной математики в .NET?
Как это «не по теме»? Вы, люди, иногда озадачиваетесь. –
Может потребоваться многопоточность (или Open MP). Я не знаю, можете ли вы использовать Open MP для .NET, но я бы порекомендовал родную dll, если вы можете поддерживать общий объем вызовов функции p/invoke на низком уровне. – dialer
Поздний ответ Я знаю, но вы можете посмотреть в Yeppp!SIMD-библиотека – user9993