Вопросы по теме 'reduction'
Шаги редукции функции-предшественника лямбда-исчисления
Я застрял в описании в Википедии функции-предшественника в лямбда-исчислении.
Википедия говорит следующее:
PRED := λn.λf.λx. n (λg.λh. h (g f)) (λu.x) (λu.u)
Может ли кто-нибудь объяснить процесс восстановления шаг за шагом?
Спасибо.
9453 просмотров
schedule
12.12.2023
Выражение факта в логическом выражении полиномиального размера
Если у меня есть логические переменные a_1, a_2, .., a_n. Как я могу выразить тот факт, что количество логических переменных, для которых установлено значение true, больше некоторого k, используя логическое выражение полиномиального размера?...
261 просмотров
schedule
19.11.2022
CUDA — почему параллельное сокращение на основе деформации происходит медленнее?
У меня возникла идея о параллельном сокращении на основе варпа, поскольку все потоки варпа по определению синхронизированы.
Итак, идея заключалась в том, что входные данные можно уменьшить в 64 раза (каждый поток уменьшает два элемента) без...
3257 просмотров
schedule
19.05.2022
Каково использование сокращения в openmp?
У меня есть этот кусок кода, который распараллелен.
int i,n; double area,pi,x;
area=0.0;
#pragma omp parallel for private(x) reduction (+:area)
for(i=0; i<n; i++){
x= (i+0.5)/n;
area+= 4.0/(1.0+x*x);
}
pi = area/n;
Говорят, что сокращение...
3059 просмотров
schedule
18.03.2023
Есть ли хорошая реализация алгоритма редукции, вызываемого из ядра с динамическим параллелизмом?
Я вижу алгоритмы сокращения в CUDA (такие как суммирование и максимизация по диапазону элементов), обсуждавшиеся в предыдущих постах, но с динамическим параллелизмом их потенциально можно реализовать по-другому. Есть ли более эффективная реализация,...
419 просмотров
schedule
11.05.2022
Самая левая крайняя редукция (Haskell)
я получил задачу использовать самое левое внешнее сокращение для следующего выражения:
f inc expo 9 (f (*2) expo 3 1)
Inc определяется как:
inc :: Int -> Int
inc x = x+1
экспо определяется как:
expo :: Int -> Int
expo x =...
1611 просмотров
schedule
18.11.2023
Циклы Opencl в ядре
В блоке кода есть моя функция ядра. По сути, он вычисляет, какая точка находится дальше всего от всех кластеров, и результаты сохраняются в длинах [3] (идентификатор точки) и выводят [0] расстояние от принадлежащего кластера. Часть while делает...
154 просмотров
schedule
09.05.2023
Сокращение блоков в CUDA
Я пытаюсь сделать сокращение в CUDA, и я действительно новичок. В настоящее время я изучаю пример кода от NVIDIA.
Я думаю, я действительно не уверен, как настроить размер блока и размер сетки, особенно когда мой входной массив больше ( 512 X 512...
26546 просмотров
schedule
30.10.2022
Цикл OpenMP дает другой результат для одного и того же последовательного цикла
У меня есть серийный код:
double* a = malloc((1000000) * sizeof(double));
double* b = malloc((1000000) * sizeof(double));
double totalA = 0;
for (int i = 0; i < 1000000; i++) {
if (i == 0) {
a[i] = sin(i);
}
b[i] =...
1559 просмотров
schedule
21.06.2023
Приоритет оператора лямбда-исчисления и стратегии сокращения
1. В лямбда-исчислении приложения имеют более высокий приоритет, чем абстракции. Теперь в этом примере автор показывает два сокращения в нормальный и аппликативный порядок. Первый:
(λx.x^2 (λx.(x+1) 2))) → (λx.x^2 (2+1)) → (λx.x^2 (3)) →...
374 просмотров
schedule
18.07.2022
управление памятью результатов CUDA Throw::minmax_element с возвращаемым типом пара device_ptr
У меня есть облако точек в памяти устройства в dPointsWS с расположением памяти, где сначала хранятся все x-, затем все y- и, наконец, все z-координаты. Я использую тягу, чтобы вычислить ограниченную рамку, выровненную по узкой оси (AABB) этого...
342 просмотров
schedule
14.01.2023
OpenMesh, децимация, Линдстрем-Тёрк
В моем приложении я работаю с большим количеством треугольных сеток, и иногда мне нужно уменьшить количество треугольников в них (свернуть некоторые ребра). Для обработки сетки я использую openmesh (openmesh.org), так как он современный (C++), но в...
1363 просмотров
schedule
16.03.2023
Как Haskell оценивает функцию Фибоначчи?
В настоящее время я смотрю на эту функцию в Haskell, которая возвращает число Фибоначчи в позиции n
fib :: Integer -> Integer
fib 0 = 0
fib 1 = 1
fib n = fib (n-1) + fib (n-2)
Теперь он компилируется, возвращает правильный результат и...
273 просмотров
schedule
13.05.2023
CUDA — несколько параллельных сокращений иногда терпят неудачу
У меня следующая проблема. Я реализовал несколько разных алгоритмов параллельного сокращения, и все они работают правильно, если я уменьшаю только одно значение для каждого ядра. Но теперь мне нужно уменьшить несколько (21) , и я просто понятия...
795 просмотров
schedule
06.02.2023
Суммирование вложенных циклов в 2D с использованием OpenCL
Недавно я начал работать с OpenCL на C++ и пытаюсь полностью понять, как использовать 2D и 3D NDRange. В настоящее время я реализую взвешивание обратного расстояния в OpenCL, но моя проблема носит общий характер.
Ниже приведена последовательная...
1003 просмотров
schedule
06.03.2022
Сведение массива CUDA к сумме элементов. Как передать ответ с устройства на хост и на печать?
Я пытаюсь уменьшить массив до суммы его элементов, используя CUDA. У меня возникли проблемы с передачей суммы, рассчитанной на устройстве, обратно на хост, чтобы ее можно было распечатать.
это вывод, который я получаю:
содержимое массива: 33 36...
831 просмотров
schedule
08.02.2023
Не могу понять решение (машина Тьюринга и редукция)
Нажмите здесь, чтобы увидеть мою проблему
Hi.
Что касается этого вопроса, я просто не могу понять его решение.
Мы знаем дополнение Atm = { <M,W> : M является TM и M не принимает W} и Rtm, как описано на фото = { <M,W> : M...
211 просмотров
schedule
13.04.2023
Разница между бета-снижением и одноступенчатым бета-снижением?
Я просмотрел множество онлайн-источников по лямбда-исчислению в поисках разницы между бета-сокращением и одношаговым бета-сокращением. Но все, что я знаю до сих пор, это то, что бета-редукция определяется как:
(/x.L)M --> {M/x}L
и...
144 просмотров
schedule
21.04.2023
Преобразование массива Matalab 60000x10 в 60000x1 или 1x60000
С 2D-массивом размером 60000 строк, 10 столбцов у меня есть массив следующим образом
[0 0 0 0 0 1 0 0 0 0]
[1 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 1]
.......
Любая строка будет содержать только одну «1»
Я должен уменьшить это до...
110 просмотров
schedule
26.09.2022
Вложение циклов галоидной суммы
Вложенность печатных циклов для Halide::sum не эквивалентна оптимальной, как написано в учебник .
Этот код предоставляет отдельные циклы для нулевой инициализации и суммирования.
Halide::Func f("f");
Halide::Var x("x");
Halide::RDom r(0,...
455 просмотров
schedule
18.12.2022