Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Поддерживает ли Java SIMD / 15 сообщений из 15, страница 1 из 1
02.11.2017, 19:14
    #39546951
aleks.eustace
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поддерживает ли Java SIMD
Подскажите пожалуйста, есть ли в Java каким-то образом реализованная поддержка SIMD?
...
Рейтинг: 0 / 0
02.11.2017, 20:57
    #39546997
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поддерживает ли Java SIMD
API отсутствует, поэтому можно считать, что "нет, не поддерживает".
Соответственно - только JNI, только хардкор.
...
Рейтинг: 0 / 0
02.11.2017, 21:31
    #39547013
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поддерживает ли Java SIMD
Вроде, на уровне JIT умеет некоторые конструкции оптимизировать.
...
Рейтинг: 0 / 0
03.11.2017, 18:21
    #39547604
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поддерживает ли Java SIMD
От "есть на уровне JIT" и "могу использовать в исходном коде" - дистанция огромного размера.
...
Рейтинг: 0 / 0
03.11.2017, 20:17
    #39547638
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поддерживает ли Java SIMD
JIT использует SIMD оптимизации
...
Рейтинг: 0 / 0
03.11.2017, 20:46
    #39547648
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поддерживает ли Java SIMD
И как прикладнику написать код, который гарантированно задействует SIMD подходящего уровня и не перестанет работать, если SIMD-а нет вообще или нет нужной версии?
...
Рейтинг: 0 / 0
04.11.2017, 21:32
    #39547842
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поддерживает ли Java SIMD
Basil A. SidorovИ как прикладнику написать код, который гарантированно задействует SIMD подходящего уровня и не перестанет работать, если SIMD-а нет вообще или нет нужной версии?
Поясни, что ты понимаешь под "SIMD-а нет вообще или нет нужной версии".

Лучше с примерами старше Пентиум3.
...
Рейтинг: 0 / 0
04.11.2017, 21:37
    #39547846
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поддерживает ли Java SIMD
Конечно имелось ввиду, процессоры "старше или новее..."

И относится только к Интел x86/x64
...
Рейтинг: 0 / 0
04.11.2017, 21:55
    #39547857
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поддерживает ли Java SIMD
aleks.eustaceПодскажите пожалуйста, есть ли в Java каким-то образом реализованная поддержка SIMD?
Если ты где-то использовал String::equals() то считай что уже использовал интринзик с расширенным
набором команд типа SSE. Если ты где-то считал SHA1 - с использованием крипто-библиотек - то фактически использовал
под капотом AVX. Я не уверен на 100% что крипто-библиотеки обязательно это используют но если верно обратное - то
они теряют в перформансе и много.

Грубо говоря JDK и хорошие библиотеки - поддерживают.

Если ты хочешь сам заюзать расширенные наборы команд - то гоу-гоу учить ассемблер и JNI.

И самое главное - обосновать что SIMD будет полезен в данном кейсе. А это, согласись задача
не простая.
...
Рейтинг: 0 / 0
05.11.2017, 21:52
    #39548102
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поддерживает ли Java SIMD
Basil A. SidorovСоответственно - только JNI, только хардкор.с ассемблерными вставками (:
...
Рейтинг: 0 / 0
09.11.2017, 08:36
    #39550004
Сергей Арсеньев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поддерживает ли Java SIMD
maytonГрубо говоря JDK и хорошие библиотеки - поддерживают.
Только, как Вы выше заметили, если есть intrinsic или иная нативная реализация. :)

Другими словами Java (как язык программирования) не поддерживает никак. Jvm чтоб их использовать использует черные хаки.

Да и вообще - те кто у руля Java явные противники внесения чего-нибудь, что могут современные процессоры в язык. Они больше на преобразование монолита в склееные бетоном кирпичи нацелены.
...
Рейтинг: 0 / 0
09.11.2017, 08:49
    #39550009
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поддерживает ли Java SIMD
Сергей АрсеньевДа и вообще - те кто у руля Java явные противники внесения чего-нибудь, что могут современные процессоры в язык .Ну, это во-первых очень затрантно в плане реализации. А во-вторых, в этом и нет особой необходимости.
Разработчики Javы могут лишь улучшить JVM добавив разные опции низкоуровневой оптимизации и т.д.
...
Рейтинг: 0 / 0
09.11.2017, 09:57
    #39550036
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поддерживает ли Java SIMD
Сергей АрсеньевДа и вообще - те кто у руля Java явные противники внесения чего-нибудь, что могут современные процессоры в язык."... отдельные процессоры ..." - так будет правильно.
Когда подавляющее число разных процессоров, на которых может работать JVM, будет уметь более-менее одинаковый набор векторных команд - можно начинать думать "как работать с этим в языке".
До этого - точечные оптимизации на уровне JVM.
...
Рейтинг: 0 / 0
09.11.2017, 17:53
    #39550444
Сергей Арсеньев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поддерживает ли Java SIMD
UsmanСергей АрсеньевДа и вообще - те кто у руля Java явные противники внесения чего-нибудь, что могут современные процессоры в язык .Ну, это во-первых очень затрантно в плане реализации. А во-вторых, в этом и нет особой необходимости.
Разработчики Javы могут лишь улучшить JVM добавив разные опции низкоуровневой оптимизации и т.д.
В том то вся и беда, что добавить несколько примитивных типов (128,256,512 битных структур)
Которые могут представляться как набор double,single или int не сложно. Даже статические анализаторы кода могут разворачивать циклы по ним в то что может процессор. Но это ж не ООП. А нет примитива, нет и низкоуровневой оптимизации JIT, которым так хвалится Java. А на самом деле - подстановкой метода написанного на другом языке вместо одного единственного знакомого JVM.
Basil A. SidorovСергей АрсеньевДа и вообще - те кто у руля Java явные противники внесения чего-нибудь, что могут современные процессоры в язык."... отдельные процессоры ..." - так будет правильно.
Когда подавляющее число разных процессоров,
Т.е. все более-менее современные x86+,ARM,Power и даже Spark. Самое смешное то, что делать и на других процессорах понятно - цикл не разворачивать (собственно можно уже и на современных Интелах - там уже в некоторых случаях rep opceode проц сам на исполнители SIMD раскидывает).
Но без возможности сообщить JVM что вот енто комплексное число и если в процессоре есть для него инструкции используй их. Как "точечно" JVM не оптимизируй все будет идти как будто проц этого делать не умеет, ну за исключением исключений.
...
Рейтинг: 0 / 0
09.11.2017, 19:00
    #39550499
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поддерживает ли Java SIMD
Сергей АрсеньевВ том то вся и беда, что добавить несколько примитивных типов (128,256,512 битных структур)
Которые могут представляться как набор double,single или int не сложно.
...
Т.е. все более-менее современные x86+,ARM,Power и даже Spark. Самое смешное то, что делать и на других процессорах понятноЧитаю и не могу отделаться от ощущения, что у вас уже есть кошерная реализация C2 JIT под несколько платформ, но по политическим мотивам ваша работа не принята в основную ветку.

P.S. Когда, говорите, убрали volatile из Long-обёртки?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Поддерживает ли Java SIMD / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]