Оптимизированная реализация графического процессора функции вида MATLAB
B = gpucoder.sort(A)B = gpucoder.sort(A,DIM)B = gpucoder.sort(A,DIRECTION)[B,I] = gpucoder.sort(A,...)B = gpucoder.sort(A) сортирует элементы A в порядке возрастания. Операция вида выполняется на графическом процессоре с помощью библиотеки Thrust. Тяга является библиотекой шаблонов C++ для CUDA® и поставляется с инструментарием CUDA. Отсортированный вывод в B имеет тот же тип и размер как A. Если A является вектором, gpucoder.sort(A) сортирует элементы в порядке возрастания. Если A является матрицей, виды gpucoder.sort(A) каждый столбец в порядке возрастания. Если A является N-мерным массивом, видами gpucoder.sort(A) по первому неодноэлементному измерению.
B = gpucoder.sort(A,DIM) имеет дополнительный аргумент DIM, который задает размерность, по которой выполняется операция вида.
B = gpucoder.sort(A,DIRECTION) имеет дополнительный аргумент DIRECTION, который задает направление вида. DIRECTION может принять одно из двух значений:
'ascend' - Сортировки в порядке по возрастанию. Это - опция по умолчанию
'descend' - Сортировки в порядке убывания.
[B,I] = gpucoder.sort(A,...) возвращается вид индексируют I, который задает, как элементы A были перестроены, чтобы получить отсортированный вывод B.
Если A является вектором, то B = A(I).
Если A является матрицей m на n и DIM = 1, то
for j = 1:n B(:,j) = A(I(:,j),j); end
Упорядоченное расположение вида стабильно. А именно, когда больше чем один элемент имеет то же значение, порядок равных элементов сохраняется в отсортированном выводе B и индексах, я имеющий отношение к равным элементам возрастаю.
Когда gpucoder.sort называется от MATLAB®, он использует встроенную функцию sort.
gpucoder.sort не поддерживает комплексные числа.
gpucoder.sort не поддерживает 'MissingPlacement' and 'ComparisonMethod' Пары "имя-значение", поддержанные функцией sort MATLAB.
coder.gpu.constantMemory | coder.gpu.kernel | coder.gpu.kernelfun | gpucoder.stencilKernel