Скалярное произведение - SSE2 по сравнению с BLAS

Вот альтернативное решение в Python 3.0, который позволяет объекты несписка строк:

>>> alist = ['a', 1, (2, 'b')]
  • стандартный путь

    >>> ", ".join(map(str, alist))
    "a, 1, (2, 'b')"
    
  • альтернативное решение

    >>> import io
    >>> s = io.StringIO()
    >>> print(*alist, file=s, sep=', ', end='')
    >>> s.getvalue()
    "a, 1, (2, 'b')"
    

ПРИМЕЧАНИЕ: пространство после запятой является намеренным.

10
задан Aamir 7 July 2009 в 03:48
поделиться

4 ответа

Я думаю, что графические процессоры специально разработаны для быстрого выполнения подобных операций (среди прочих). Так что вы, вероятно, могли бы использовать библиотеки DirectX или OpenGL для выполнения векторных операций. D3DXVec2Dot Это также сэкономит ваше процессорное время.

4
ответ дан 4 December 2019 в 03:39
поделиться

Ручное кодирование решения SSE2 не очень сложно и принесет хорошее ускорение по сравнению с подпрограммой на чистом языке C. Насколько это повлечет за собой выполнение процедуры BLAS, должно определяться вами.

Наибольшее ускорение достигается за счет структурирования данных в формате, чтобы вы могли использовать параллелизм и выравнивание данных.

0
ответ дан 4 December 2019 в 03:39
поделиться

Alternatives for optimised BLAS routines:

  • If you use intel compilers, you may have access to intel MKL
  • For other compilers ATLAS usually provides nice performance numbers
1
ответ дан 4 December 2019 в 03:39
поделиться

I use a GotoBLAS. It's the hight perfomance kernel routines. The many times better than MKL and BLAS.

0
ответ дан 4 December 2019 в 03:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: