Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

GPU에서 배열 설정하기

MATLAB®에서 gpuArray는 GPU 메모리에 저장되는 배열을 나타냅니다. GPU에서 배열을 지원하는 함수에 대한 자세한 내용은 GPU에서 MATLAB 함수 실행하기 항목을 참조하십시오.

기존 데이터에서 GPU 배열 만들기

GPU로 배열 보내기

GPU 배열은 기존 배열을 호스트 메모리에서 GPU로 전송하여 만들 수 있습니다. gpuArray 함수를 사용하여 호스트 메모리에서 GPU로 배열을 전송합니다.

gpuArray 함수는 숫자형 입력 인수만 지원합니다(예: single, double, int8 또는 logical 입력 인수). gpuArray 함수는 복소수 값 입력을 지원합니다. 자세한 내용은 GPU에서 복소수 사용하기 항목을 참조하십시오.

N = 6;
M = magic(N);
G = gpuArray(M);

GPU에서 배열 가져오기

GPU에서 호스트 메모리로 배열을 전송하기 위해 gather 함수를 사용합니다. 이 함수는 호스트 메모리에 저장된 일반 MATLAB 배열을 반환합니다. isequal을 사용하여 gather 함수가 올바른 값을 반환하는지 확인하십시오.

데이터를 GPU로 전송하고 GPU에서 전송받는 작업은 비용이 많이 들 수 있습니다. gpuArray를 지원하지 않는 함수에서 결과를 사용해야 하는 경우가 아니라면 일반적으로 gather를 호출하는 작업은 필요하지 않습니다.

G = gpuArray(ones(100,"uint32"));
D = gather(G);
OK = isequal(D,ones(100,"uint32"))

GPU로 배열 전송하기

1000×1000 확률 행렬을 만든 다음 이 행렬을 GPU로 전송합니다. GPU에서의 난수 생성에 대한 자세한 내용은 Random Number Streams on a GPU 항목을 참조하십시오.

X = rand(1000);
G = gpuArray(X);

GPU의 난수 생성에 대한 자세한 내용은 Random Number Streams on a GPU 항목을 참조하십시오.

지정된 정밀도의 배열 전송하기

배정밀도 난수 값으로 구성된 행렬을 만들고 이 행렬을 단정밀도 형식으로 GPU로 전송합니다.

X = rand(1000);
G = gpuArray(single(X));

GPU 배열 직접 만들기

gpuArray 유형을 일부 함수에 대한 입력 인수로 지정하여 GPU에서 배열을 직접 만들 수 있습니다. 이러한 함수에는 배열 크기 및 데이터 클래스 정보만 필요하므로 호스트 메모리에서 요소를 전송할 필요 없이 배열을 생성할 수 있습니다. 자세한 내용은 gpuArray를 참조하십시오.

또한 "like" 이름-값 인수를 사용해 기존 gpuArray의 데이터형을 미러링하여 GPU에서 배열을 만들 수 있습니다. 몇 가지 함수를 사용해 like=p를 입력 인수로 제공하여 프로토타입 배열 p와 동일한 데이터형을 가진 배열을 생성할 수 있습니다. "like" 옵션을 지원하는 함수로는 zeros, ones, eye, true, false, cast, rand, randi, randn이 있습니다.

GPU에서 단위 행렬 만들기

GPU에서 int32 유형의 1024×1024 단위 행렬을 만듭니다.

II = eye(1024,"int32","gpuArray");
size(II)
        1024        1024

GPU에서 다차원 배열 만들기

GPU에서 데이터형이 double인 1로 구성된 3차원 배열을 만듭니다.

G = ones(100,100,50,"gpuArray");
size(G)
   100   100    50
underlyingType(G)
double

GPU에서 벡터 만들기

GPU에서 요소를 8192개 가진 0으로 구성된 열 벡터를 만듭니다.

Z = zeros(8192,1,"gpuArray");
size(Z)
        8192           1

프로토타입 배열을 기반으로 GPU에서 배열 만들기

프로토타입 배열과 동일한 데이터형을 가진, 난수로 구성된 100×100 배열을 만듭니다.

G = gpuArray([1 2 3]);
R = rand(100,like=G);

gpuArray 특성 검토하기

다음과 같은 함수를 사용하여 gpuArray 객체의 특성을 검토합니다.

함수설명
underlyingType배열에서 기본 데이터의 클래스
existsOnGPUGPU에 배열이 존재하는지, 배열에 액세스 가능한지 여부를 표시
isreal배열 데이터가 실수인지 표시
isUnderlyingType

기본 배열 데이터가 지정된 클래스의 데이터인지 확인(예: double형)

isequal둘 이상의 배열이 일치하는지 확인
isnumeric배열이 숫자 데이터형인지 확인
issparse배열이 희소 형식 배열인지 확인
length벡터 또는 가장 큰 배열 차원의 길이
mustBeUnderlyingType배열이 지정된 기본 유형(예: double형)을 갖는지 유효성 검사
ndims배열의 차원 수
size배열 차원의 크기

gpuArray 객체 G의 크기를 검토합니다.

G = rand(100,"gpuArray");
s = size(G)
    100   100

gpuArray 객체 저장 및 불러오기

gpuArray 변수를 MAT 파일로 저장할 수 있습니다. gpuArray를 저장하면, MATLAB은 해당 데이터를 MAT 파일에 gpuArray 변수로 저장합니다. gpuArray 변수가 포함된 MAT 파일을 불러오면 MATLAB은 해당 데이터를 gpuArray로 GPU에 불러옵니다.

참고

GPU를 사용할 수 없는 경우 gpuArray 데이터가 포함된 MAT 파일을 메모리 내 배열로 불러올 수 있습니다. GPU 없이 불러온 gpuArray는 사용이 제한되며 계산에 사용할 수 없습니다. GPU 없이 불러온 gpuArray를 사용하려면 gather 함수로 배열 내 내용을 가져오십시오.

MATLAB 작업 공간에서 변수를 저장하고 불러오는 방법에 대한 자세한 내용은 작업 공간 변수 저장하기와 불러오기 항목을 참조하십시오.

참고 항목

|

관련 항목