Поддерживаемые функции

Можно сгенерировать код CUDA® для подмножества встроенных функций MATLAB® и функций тулбокса, которые вы вызываете из кода MATLAB. Эти функции появляются в алфавитном порядке в следующей таблице. Некоторые из этих функций особенно от Image Processing Toolbox™ содержат вызовы других функций, GPU Coder™ не создает ядра CUDA для всех циклов и функций, на которые полагается родительская функция. Однако GPU Coder действительно генерирует код C/C++ для разделов, которые не могут быть сопоставлены с графическим процессором. Результаты кода, сгенерированного для функций в этом списке, также численно эквивалентны (в допуске) к его дубликату MATLAB. Смотрите, Числовые Различия Между центральным процессором и графическим процессором.

Чтобы искать частично поддерживаемые функции, смотрите Частично Поддерживаемые Функции.

Имя

Продукт

Указания и ограничения по применению

abs

MATLAB

 

accumneg

Fixed-Point Designer™

 

accumpos

Fixed-Point Designer

 

acos

MATLAB

 

acosd

MATLAB

 

acosh

MATLAB

 

acot

MATLAB

 

acotd

MATLAB

 

activations

Deep Learning Toolbox™

  • Вход X не должен иметь переменного размера. Размер должен быть зафиксирован во время генерации кода.

  • Аргумент layer должен быть постоянным.

  • Только аргумент пары "имя-значение" 'OutputAs' поддерживается. Значением должен быть 'channels'.

affine2d

Image Processing Toolbox

 

alexnet

Deep Learning Toolbox

Для генерации кода можно загрузить сеть при помощи синтаксиса net = alexnet или путем передачи функции alexnet coder.loadDeepLearningNetwork. Например: net = coder.loadDeepLearningNetwork('alexnet')

and

MATLAB

 

angle

MATLAB

 

asin

MATLAB

 

asind

MATLAB

 

asinh

MATLAB

 

atan

MATLAB

 

atan2

MATLAB

 

atan2d

MATLAB

 

atand

MATLAB

 

atanh

MATLAB

 

bin2dec

MATLAB

 
bitand

MATLAB

 
bitcmp

MATLAB

 
bitget

MATLAB

 
bitor

MATLAB

 
bitrevorder

Signal Processing Toolbox™

 
bitset

MATLAB

 
bitshift

MATLAB

 
bitsll

Fixed-Point Designer

 
bitsra

Fixed-Point Designer

 
bitsrl

Fixed-Point Designer

 
bitxor

MATLAB

 
blkdiag

MATLAB

 
bsxfun

MATLAB

 

bwareaopen

Image Processing Toolbox

 

bwboundaries

Image Processing Toolbox

 

bwconncomp

Image Processing Toolbox

 

bwdist

Image Processing Toolbox

 

bweuler

Image Processing Toolbox

 

bwlabel

Image Processing Toolbox

 

bwlookup

Image Processing Toolbox

 

bwmorph

Image Processing Toolbox

 

bwperim

Image Processing Toolbox

 

bwselect

Image Processing Toolbox

 

bwtraceboundary

Image Processing Toolbox

 

bwunpack

Image Processing Toolbox

 

cart2pol

MATLAB

 

cast

MATLAB

 

ceil

MATLAB

 

chol

MATLAB

 

classUnderlying

MATLAB

 

compan

MATLAB

 

complex

MATLAB

 

conj

MATLAB

 

conndef

Image Processing Toolbox

 

conv

MATLAB

 

conv2

MATLAB

 

cos

MATLAB

 

cosh

MATLAB

 

cot

MATLAB

 

coth

MATLAB

 

cross

MATLAB

 

csc

MATLAB

 

csch

MATLAB

 

ctranspose

MATLAB

 

cwt

Wavelet Toolbox™

  • Входной сигнал расписания не поддержан.

  • Все входные параметры должны быть постоянными и заданными во время компиляции.

  • Только аналитический Морзе ('morse') и Morlet ('amor') вейвлеты поддерживается.

  • Следующие входные параметры не поддержаны: Выбирая период (ts), пара "имя-значение" PeriodLimits, пара "имя-значение" NumOctave и пара "имя-значение" FilterBank.

  • Масштабирование коэффициента вывод и набор фильтров вывод не поддержано.

  • Графический вывод не поддержан.

cummax

MATLAB

 

cummin

MATLAB

 

cumprod

MATLAB

 

cumsum

MATLAB

 

DAGNetwork

Deep Learning Toolbox

deg2rad

MATLAB

 

del2

MATLAB

 

demosaic

Image Processing Toolbox  

det

MATLAB

 

diag

MATLAB

 

double

MATLAB

 

edge

Image Processing Toolbox  

exp

MATLAB

 

eye

MATLAB

 

factorial

MATLAB

 

fft

MATLAB

 

fft2

MATLAB

 

fftn

MATLAB

 

fitgeotrans

Image Processing Toolbox

 

fix

MATLAB

 

floor

MATLAB

 

fspecial

Image Processing Toolbox

 

gather

MATLAB

 

ge

MATLAB

 

getrangefromclass

Image Processing Toolbox  

googlenet

Deep Learning Toolbox

Для генерации кода можно загрузить сеть при помощи синтаксиса net = googlenet или путем передачи функции googlenet coder.loadDeepLearningNetwork. Например: net = coder.loadDeepLearningNetwork('googlenet')

gt

MATLAB

 

hough

Image Processing Toolbox

 

houghlines

Image Processing Toolbox

 

houghpeaks

Image Processing Toolbox

 

hsv2rgb

MATLAB

 

hypot

MATLAB

 

im2double

MATLAB

 

im2int16

Image Processing Toolbox

 

im2single

Image Processing Toolbox

 

im2uint8

Image Processing Toolbox

 

imabsdiff

Image Processing Toolbox

 

imadjust

Image Processing Toolbox

 

imag

MATLAB

 

imboxfilt

Image Processing Toolbox

 

imcomplement

Image Processing Toolbox

 

imcrop

Image Processing Toolbox

 

imdilate

Image Processing Toolbox

  • Входное изображение, IM, должно быть 2D или 3-D.

  • Упакованное изображение двоичного входа (синтаксис PACKOPT) не поддержано.

  • Для 3-D входных изображений больше чем с тремя каналами только сгенерирован код C/C++.

  • Код CUDA сгенерирован только для 1D или 2D элементов структурирования. Если элемент структурирования 3-D код C/C++ сгенерирован. Генерация кода не поддержана для структурирования элементов с больше, чем тремя измерениями.

  • Для неплоских элементов структурирования только сгенерирован код C/C++.

imerode

Image Processing Toolbox

imfilter

Image Processing Toolbox

С инструментарием CUDA v9.0, ошибка в оптимизации NVIDIA® вызывает числовое несоответствие между результатами сгенерированного кода и MATLAB. Как обходное решение, выключите оптимизацию путем передачи следующих флагов объекту настройки (cfg) прежде, чем сгенерировать код.

cfg.GpuConfig.CompilerFlags = ‘-Xptxas -O0’

NVIDIA, как ожидают, исправит эту ошибку в инструментарии CUDA v9.1.

imgaussfilt

Image Processing Toolbox

 

imgradient3

Image Processing Toolbox

 

imgradientxyz

Image Processing Toolbox

 

imhist

Image Processing Toolbox

 

imhmax

Image Processing Toolbox

 

immse

Image Processing Toolbox

 

imopen

Image Processing Toolbox

 

imoverlay

Image Processing Toolbox

 

impyramid

Image Processing Toolbox

 

imquantize

Image Processing Toolbox

 

imread

Image Processing Toolbox

 

imresize

Image Processing Toolbox

  • 'Colormap' и Аргументы пары "имя-значение" 'Dither' не поддержаны.

  • Индексируемое изображение не поддержано.

  • Пользовательское ядро интерполяции не поддержано.

  • Для определенных ядер интерполяции может быть маленькое числовое несоответствие между результатами в MATLAB и сгенерированном коде.

imtophat

Image Processing Toolbox

 

imwarp

Image Processing Toolbox

  • Вход объекта геометрического преобразования, tform, должен быть любой объектом affine2d или projective2d и должен быть константами.

  • Пространственный вывод информации ссылки, RB, не поддержан.

int8, int16, int32, int64

MATLAB

 

integralBoxFilter

Image Processing Toolbox

 

intlut

Image Processing Toolbox

 

isaUnderlying

MATLAB

 

isequal

MATLAB

 

isfloat

MATLAB

 

isinteger

MATLAB

 

islogical

MATLAB

 

ismatrix

MATLAB

 

isnumeric

MATLAB

 

isreal

MATLAB

 

isrow

MATLAB

 

issparse

MATLAB

 

issymmetric

MATLAB

 

istril

MATLAB

 

istriu

MATLAB

 

isvector

MATLAB

 

kron

MATLAB

 

lab2rgb

Image Processing Toolbox

 

label2idx

Image Processing Toolbox

 

ldivide

MATLAB

 

le

MATLAB

 

length

MATLAB

 

linsolve

MATLAB

 

log

MATLAB

 

log10

MATLAB

 

log1p

MATLAB

 

logical

MATLAB

 

lt

MATLAB

 

lu

MATLAB

 

matchFeatures

Computer Vision Toolbox™

Код CUDA сгенерирован только для метода сопоставления exhaustive. Если метод Approximate выбран, GPU Coder выдает предупреждение и генерирует код C/C++ для этой функции.

mean

MATLAB

 

mean2

Image Processing Toolbox  

meshgrid

MATLAB

 

minus

MATLAB

 

mldivide

MATLAB

 

mpower

MATLAB

 

mrdivide

MATLAB

 

mtimes

MATLAB

 

multithresh

Image Processing Toolbox  

NaN или nan

MATLAB

 

ne

MATLAB

 

nextpow2

MATLAB

 

nnz

MATLAB

 

numel

MATLAB

 

ones

MATLAB

 

ordfilt2

Image Processing Toolbox

  • Генерация кода графического процессора требует, чтобы входные параметры были ограничены. Если вход имеет переменную размерность, программное обеспечение генерирует код С.

  • Сгенерированный код графического процессора не оптимизирован, если значение domain, которое задает окружение для операции фильтрации, имеет размер, больше, чем 11x11.

    Для лучшей производительности рассмотрите установку опции StackLimitPerThread в объекте gpuConfig к Inf.

otsuthresh

Image Processing Toolbox  

padarray

Image Processing Toolbox

 
pdist Statistics and Machine Learning Toolbox™

  • Поддерживаемыми значениями входного параметра расстояния (Distance) для оптимизированного кода CUDA является 'euclidean', 'squaredeuclidean', 'seuclidean', 'cityblock', 'minkowski', 'chebychev', 'cosine', 'correlation', 'hamming' и 'jaccard'.

  • Distance не может быть пользовательской функцией расстояния.

  • Distance должен быть постоянным временем компиляции.

pdist2 Statistics and Machine Learning Toolbox

  • Поддерживаемыми значениями входного параметра расстояния (Distance) для оптимизированного кода CUDA является 'euclidean', 'squaredeuclidean', 'seuclidean', 'cityblock', 'minkowski', 'chebychev', 'cosine', 'correlation', 'hamming' и 'jaccard'.

  • Distance не может быть пользовательской функцией расстояния.

  • Distance должен быть постоянным временем компиляции.

  • Имена в аргументах пары "имя-значение" должны быть константами времени компиляции.

  • Отсортированный порядок связанных расстояний в сгенерированном коде может отличаться от порядка в MATLAB из-за числовой точности.

plus

MATLAB

 

pol2cart

MATLAB

 

polyint

MATLAB

 

pow2

Fixed-Point Designer

 

power

MATLAB

 

predict

Deep Learning Toolbox

  • Только синтаксис YPred = predict(net,X) поддерживается.

  • Вход X не должен иметь переменного размера. Размер должен быть зафиксирован во время генерации кода.

prod

MATLAB

 

projective2d

Image Processing Toolbox  

psnr

Image Processing Toolbox

 

qr

MATLAB

 

rad2deg

MATLAB

 

rank

MATLAB

 

rcond

MATLAB

 

rdivide

MATLAB

 

real

MATLAB

 

reallog

MATLAB

 

realsqrt

MATLAB

 

rectint

MATLAB

 

repelem

MATLAB

 

repmat

MATLAB

 

reshape

MATLAB

 

resnet50

Deep Learning Toolbox

Для генерации кода можно загрузить сеть при помощи синтаксиса net = resnet50 или путем передачи функции resnet50 coder.loadDeepLearningNetwork. Например: net = coder.loadDeepLearningNetwork('resnet50')

resnet101

Deep Learning Toolbox

Для генерации кода можно загрузить сеть при помощи синтаксиса net = resnet101 или путем передачи функции resnet101 coder.loadDeepLearningNetwork. Например: net = coder.loadDeepLearningNetwork('resnet101')

rgb2gray

MATLAB

 

rgb2hsv

MATLAB

 

rgb2lab

Image Processing Toolbox  

rgb2ycbcr

Image Processing Toolbox  

rot90

MATLAB

 

round

MATLAB

 

sec

MATLAB

 

sech

MATLAB

 

SeriesNetwork

Deep Learning Toolbox

sin

MATLAB

 

single

MATLAB

 

sinh

MATLAB

 

size

MATLAB

 

sortrows

MATLAB

 

sph2cart

MATLAB

 

sqrt

MATLAB

 

squeeze

MATLAB

 

squeezenet

Deep Learning Toolbox

Для генерации кода можно загрузить сеть при помощи синтаксиса net = squeezenet или путем передачи функции squeezenet coder.loadDeepLearningNetwork. Например: net = coder.loadDeepLearningNetwork('squeezenet')

std

MATLAB

 

stretchlim

Image Processing Toolbox  

sub2ind

MATLAB

 

subsasgn

Fixed-Point Designer

 

subsindex

MATLAB

 

subsref

Fixed-Point Designer

 
   

sum

MATLAB

 

superpixels

Image Processing Toolbox  

svd

MATLAB

 

swapbytes

MATLAB

 

tan

MATLAB

 

tanh

MATLAB

 

times

MATLAB

 

trace

MATLAB

 

transpose

MATLAB

 

tril

MATLAB

 

triu

MATLAB

 

true

MATLAB

 

typecast

MATLAB

 

uint8, uint16, uint32, uint64

MATLAB

 

uminus

MATLAB

 

unetLayers

Computer Vision Toolbox

 

uplus

MATLAB

 

vander

MATLAB

 

var

MATLAB

 

vertcat

Fixed-Point Designer

 

vgg16

Deep Learning Toolbox

Для генерации кода можно загрузить сеть при помощи синтаксиса net = vgg16 или путем передачи функции vgg16 coder.loadDeepLearningNetwork. Например: net = coder.loadDeepLearningNetwork('vgg16')

vgg19

Deep Learning Toolbox

Для генерации кода можно загрузить сеть при помощи синтаксиса net = vgg19 или путем передачи функции vgg19 coder.loadDeepLearningNetwork. Например: net = coder.loadDeepLearningNetwork('vgg19')

watershed

Image Processing Toolbox  

xor

MATLAB

 

ycbcr2rgb

Image Processing Toolbox  

zeros

MATLAB