Re[5]: SIMD
От: Vzhyk2  
Дата: 11.05.26 12:44
Оценка:
Здравствуйте, Hоmunculus, Вы писали:

H>Смысл в том, что юзер пишет скрипт для ОДНОЙ точки. То есть прямо обращается к ее координатами через лексему типа @P.x или к нормали в точке через @N.y

CUDA и пишешь свой скрипт на С.
Re[7]: SIMD
От: Vzhyk2  
Дата: 11.05.26 12:46
Оценка:
Здравствуйте, Hоmunculus, Вы писали:

H>Нет. Просто делаю аналог одной системы и там это есть. И кстати, это одна из основных фишек этой системы. Там гипер-быстро миллионы точек обрабатываются. Видимо, недооценил сложность задачи. Но попробую хотя бы

Там компилятор с их скриптового языка в С с векторизацией SIMD или CUDA.
Re[6]: SIMD
От: WiseAlex Беларусь  
Дата: 11.05.26 13:54
Оценка:
Здравствуйте, Vzhyk2, Вы писали:
V>CUDA и пишешь свой скрипт на С.
для CUDA можно и python

для CPU
opencl — C-like language
intel — dpcpp
LLVM-based JIT: script -> parse it -> build an AST -> Convert to LLVM IR -> optimizes it -> auto-vectorizes to SIMD (SSE/AVX/AVX-512)
ISPC (Intel SPMD Program Compiler) C-like language
Halide (functional + auto-vectorized)
Re[6]: SIMD
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 12.05.26 09:37
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

V>CUDA и пишешь свой скрипт на С.


Только CUDA — это не скрипт, не SIMD (а SIMT) и не на CPU (а на GPU). А так да, по остальным критериям подходит.
Re: SIMD
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 12.05.26 09:45
Оценка: 4 (1)
Здравствуйте, Hоmunculus, Вы писали:

H>Что-то не вполне врублюсь, как с ним работать. Все примеры какие-то надуманные и примитивные.

H>Вот конкретный пример. Есть миллион точек и небольшой примитивный скриптовый язык. Хочу чтоб каждый скрипт применялся к каждой точке, но с SIMD — оптимизацией. То есть, ясно что сам скрипт-интерпретатор надо менять. Как именно? Куда копать?

Уже писали про OpenCL. Он умеет распространяться в виде текста и компилироваться в рантайме (clCompileProgram). И умеет SIMD оптимизации на CPU. Кажется, что очень хороший вариант.
Re[7]: SIMD
От: Vzhyk2  
Дата: 12.05.26 09:47
Оценка: :)
Здравствуйте, Nuzhny, Вы писали:

N>Только CUDA — это не скрипт, не SIMD (а SIMT) и не на CPU (а на GPU). А так да, по остальным критериям подходит.

Пишешь скрипт на С и компилируешь для CUDA.
Выше тут указали, что CUDA уже и питон умеет — пишешь скрипт на питоне.

З.Ы. И да, для того, что ТС хочет GPU лучший выбор для его задачи. И да, с NVIDIA(CUDA) ему будет проще, чем в АМД(я уже хер помню, что там у них аналогично CUDA).
Re[8]: SIMD
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 12.05.26 09:56
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

V>Пишешь скрипт на С и компилируешь для CUDA.


Только не С, а С++.

V>Выше тут указали, что CUDA уже и питон умеет — пишешь скрипт на питоне.


Не, CUDA Питон не умеет, это Питон умеет CUDA.

V>З.Ы. И да, для того, что ТС хочет GPU лучший выбор для его задачи. И да, с NVIDIA(CUDA) ему будет проще, чем в АМД(я уже хер помню, что там у них аналогично CUDA).


Только по условию у него CPU, а так никаких проблем. Ещё CUDA достаточно сложно распространять, надо иметь матрицу версий в соответствии с версией CUDA Toolkit и compute capability устройства, на котором будет запускаться. А нет, ещё и ОС, на которой запускаться. В отличие от того же OpenCL.
Re[9]: SIMD
От: Vzhyk2  
Дата: 12.05.26 13:24
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Только не С, а С++.

Можешь и на С. Нет там требования только С++.

V>>Выше тут указали, что CUDA уже и питон умеет — пишешь скрипт на питоне.

N>Не, CUDA Питон не умеет, это Питон умеет CUDA.
Я поверил товарищу выше.

N>Только по условию у него CPU, а так никаких проблем.

А в этом случае со своими извращениями он получит выйгрыш по времени выполнения не больше, чем раза в 2-3, причем сильно поизвращавшись. Так что проще не страдать херней, если она ему не нужна для рекламы себя любимого.
Re[10]: SIMD
От: Hоmunculus  
Дата: 12.05.26 13:35
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

Удачи с cudoй на айфонах и андроидах
Re[10]: SIMD
От: WiseAlex Беларусь  
Дата: 12.05.26 18:35
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

V>А в этом случае со своими извращениями он получит выйгрыш по времени выполнения не больше, чем раза в 2-3


simd часто дает 10х
Re[11]: SIMD
От: Vzhyk2  
Дата: 13.05.26 06:41
Оценка:
Здравствуйте, Hоmunculus, Вы писали:

H>Удачи с cudoй на айфонах и андроидах

А на этом и СИМДы очень сильно олтличные от x86-64.
Re[11]: SIMD
От: Vzhyk2  
Дата: 13.05.26 06:42
Оценка:
Здравствуйте, WiseAlex, Вы писали:

WA>simd часто дает 10х

Такое очень редко случается, а обычно ускорение в 0.5-3 раза получается только.
Re[12]: SIMD
От: Hоmunculus  
Дата: 13.05.26 06:45
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

V>Здравствуйте, Hоmunculus, Вы писали:


H>>Удачи с cudoй на айфонах и андроидах

V>А на этом и СИМДы очень сильно олтличные от x86-64.

есть обертки, которые к единому интерфейсу приводят
Re[13]: SIMD
От: Vzhyk2  
Дата: 13.05.26 08:11
Оценка:
Здравствуйте, Hоmunculus, Вы писали:

V>>А на этом и СИМДы очень сильно олтличные от x86-64.

H>есть обертки, которые к единому интерфейсу приводят
С такого и тебя только поржать остается.
Re[14]: SIMD
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 13.05.26 09:47
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

H>>есть обертки, которые к единому интерфейсу приводят

V>С такого и тебя только поржать остается.

Или с тебя, который кроме CUDA ничего не знает. Другие параллельно с ней успели и на OpenCL, и на Vulkan поускорять, а также всякие Halide в руках держали. И чем дальше, тем больше появляется возможностей.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.