Main Content

이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

GPU에서 배열 설정하기

MATLAB®에서 gpuArray는 GPU에 저장되는 배열을 나타냅니다. GPU에서 배열을 지원하는 함수의 전체 목록은 GPU에서 MATLAB 함수 실행하기 항목을 참조하십시오.

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

GPU로 배열 보내기

GPU 배열은 기존 배열을 작업 공간에서 GPU로 전송하여 생성할 수 있습니다. MATLAB에서 GPU로 배열을 전송하려면 다음과 같이 gpuArray 함수를 사용하십시오.

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

다음 코드 한 줄로 이 작업을 수행할 수 있습니다.

G = gpuArray(magic(N));

이제 G는 GPU에 저장된 마방진을 나타내는 MATLAB gpuArray 객체입니다. gpuArray에 제공되는 입력값은 숫자형(예: single, double, int8 등)이거나 논리형이어야 합니다. (GPU에서 복소수 사용하기 항목도 참조하십시오.)

GPU에서 배열 가져오기

gather 함수를 사용하여 GPU에서 MATLAB 작업 공간으로 배열을 가져옵니다. 이를 통해 gpuArray 객체로 표현되는 GPU에 있는 배열을 가져와서 MATLAB 작업 공간에 일반 MATLAB 배열로 전송합니다. isequal을 사용하여 올바른 값을 가져왔는지 확인할 수 있습니다.

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

CPU로 다시 수집하는 작업은 비용이 많이 들 수 있으며, gpuArray를 지원하지 않는 함수에서 결과를 사용할 필요가 없는 한 일반적으로 필요하지 않습니다.

예제: GPU로 배열 전송하기

MATLAB에서 1000x1000 확률 행렬을 만든 다음 행렬을 GPU로 전송합니다.

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

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

MATLAB에서 배정밀도 난수 값으로 구성된 행렬을 만든 다음 행렬을 단정밀도로 MATLAB에서 GPU로 전송합니다.

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

GPU 배열 직접 만들기

많은 함수의 경우 'gpuArray' 유형을 입력 인수로 지정하여 GPU에서 직접 배열을 생성할 수 있습니다. 이러한 함수에는 배열 크기 및 데이터 클래스 정보만 필요하므로 MATLAB 작업 공간에서 요소를 전송할 필요 없이 배열을 생성할 수 있습니다. 자세한 내용은 gpuArray를 참조하십시오.

예제: GPU에서 단위 행렬 생성하기

GPU에서 int32 유형의 1024x1024 단위 행렬을 만들려면 다음을 입력하십시오.

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

하나의 숫자형 인수를 사용하여 2차원 행렬을 만들 수 있습니다.

예제: GPU에서 다차원 배열 생성하기

GPU에서 데이터 클래스 double을 사용하여 1로 구성된 3차원 배열을 만들려면 다음을 입력하십시오.

G = ones(100,100,50,'gpuArray');
size(G)
   100   100    50
classUnderlying(G)
double

데이터의 디폴트 클래스는 double이므로 지정할 필요가 없습니다.

예제: GPU에서 벡터 생성하기

GPU에서 요소를 8192개 가진 0으로 구성된 열 벡터를 만들려면 다음을 입력하십시오.

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

열 벡터의 경우 두 번째 차원의 크기는 1입니다.

gpuArray 특성 검토하기

다음은 gpuArray 객체의 특성을 검토할 수 있는 여러 가지 함수입니다.

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

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

isequal둘 이상의 배열이 일치하는지 확인
isnumeric배열이 숫자 데이터형인지 확인
issparse배열이 희소 형식 배열인지 확인
length벡터 또는 가장 큰 배열 차원의 길이
ndims배열의 차원 수
size배열 차원의 크기

예를 들어, gpuArray 객체 G의 크기를 검토하려면 다음을 입력하십시오.

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

gpuArray 저장 및 불러오기

gpuArray 변수를 나중에 사용할 수 있도록 MAT 파일로 저장할 수 있습니다. MATLAB 작업 공간에서 gpuArray를 저장하면 데이터가 MAT 파일에 gpuArray 변수로 저장됩니다. gpuArray 변수가 포함된 MAT 파일을 불러올 경우 데이터를 gpuArray로 GPU에 불러오게 됩니다.

참고

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

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

참고 항목

관련 항목