Здравствуйте, Hоmunculus, Вы писали:
H>Смысл в том, что юзер пишет скрипт для ОДНОЙ точки. То есть прямо обращается к ее координатами через лексему типа @P.x или к нормали в точке через @N.y
CUDA и пишешь свой скрипт на С.
Здравствуйте, Hоmunculus, Вы писали:
H>Нет. Просто делаю аналог одной системы и там это есть. И кстати, это одна из основных фишек этой системы. Там гипер-быстро миллионы точек обрабатываются. Видимо, недооценил сложность задачи. Но попробую хотя бы
Там компилятор с их скриптового языка в С с векторизацией SIMD или CUDA.
Здравствуйте, 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)
Здравствуйте, Hоmunculus, Вы писали:
H>Что-то не вполне врублюсь, как с ним работать. Все примеры какие-то надуманные и примитивные. H>Вот конкретный пример. Есть миллион точек и небольшой примитивный скриптовый язык. Хочу чтоб каждый скрипт применялся к каждой точке, но с SIMD — оптимизацией. То есть, ясно что сам скрипт-интерпретатор надо менять. Как именно? Куда копать?
Уже писали про OpenCL. Он умеет распространяться в виде текста и компилироваться в рантайме (clCompileProgram). И умеет SIMD оптимизации на CPU. Кажется, что очень хороший вариант.
Здравствуйте, Nuzhny, Вы писали:
N>Только CUDA — это не скрипт, не SIMD (а SIMT) и не на CPU (а на GPU). А так да, по остальным критериям подходит.
Пишешь скрипт на С и компилируешь для CUDA.
Выше тут указали, что CUDA уже и питон умеет — пишешь скрипт на питоне.
З.Ы. И да, для того, что ТС хочет GPU лучший выбор для его задачи. И да, с NVIDIA(CUDA) ему будет проще, чем в АМД(я уже хер помню, что там у них аналогично CUDA).
Здравствуйте, Vzhyk2, Вы писали:
V>Пишешь скрипт на С и компилируешь для CUDA.
Только не С, а С++.
V>Выше тут указали, что CUDA уже и питон умеет — пишешь скрипт на питоне.
Не, CUDA Питон не умеет, это Питон умеет CUDA.
V>З.Ы. И да, для того, что ТС хочет GPU лучший выбор для его задачи. И да, с NVIDIA(CUDA) ему будет проще, чем в АМД(я уже хер помню, что там у них аналогично CUDA).
Только по условию у него CPU, а так никаких проблем. Ещё CUDA достаточно сложно распространять, надо иметь матрицу версий в соответствии с версией CUDA Toolkit и compute capability устройства, на котором будет запускаться. А нет, ещё и ОС, на которой запускаться. В отличие от того же OpenCL.
Здравствуйте, Nuzhny, Вы писали:
N>Только не С, а С++.
Можешь и на С. Нет там требования только С++.
V>>Выше тут указали, что CUDA уже и питон умеет — пишешь скрипт на питоне. N>Не, CUDA Питон не умеет, это Питон умеет CUDA.
Я поверил товарищу выше.
N>Только по условию у него CPU, а так никаких проблем.
А в этом случае со своими извращениями он получит выйгрыш по времени выполнения не больше, чем раза в 2-3, причем сильно поизвращавшись. Так что проще не страдать херней, если она ему не нужна для рекламы себя любимого.
Здравствуйте, Vzhyk2, Вы писали:
V>Здравствуйте, Hоmunculus, Вы писали:
H>>Удачи с cudoй на айфонах и андроидах V>А на этом и СИМДы очень сильно олтличные от x86-64.
есть обертки, которые к единому интерфейсу приводят
Здравствуйте, Hоmunculus, Вы писали:
V>>А на этом и СИМДы очень сильно олтличные от x86-64. H>есть обертки, которые к единому интерфейсу приводят
С такого и тебя только поржать остается.