Arrayfire는 CPU, GPU 및 기타 하드웨어 가속 장치에있는 병렬 아키텍처의 소프트웨어 개발 프로세스를 단순화하는 일반 목적 텐서 라이브러리입니다. 도서관은 모든 기술 컴퓨팅 시장에서 사용자에게 서비스를 제공합니다.
Arrayfire의 몇 가지 혜택은 다음과 같습니다.
Arrayfire는 소프트웨어 개발자에게 가속기 af::array 객체에있는 데이터의 높은 수준의 데이터를 제공합니다. 개발자는 Arrayfire Array에서 작업을 수행하는 코드를 작성하며, 이는 계산 장치에서 실행되는 거의 최적의 커널로 자동으로 변환됩니다.
Arrayfire는 저전력 휴대폰에서 고출력 GPU 지원 슈퍼 컴퓨터에 이르는 장치에서 실행됩니다. Arrayfire는 모든 주요 공급 업체 (Intel, AMD, ARM), 저명한 제조업체 (AMD, Intel, Nvidia 및 Qualcomm)의 GPU 및 Windows, Mac 및 Linux의 다양한 가속기 장치의 CPU에서 실행됩니다.
소스에서 배열 파이어를 설치하거나 빌드하는 지침은 위키에서 찾을 수 있습니다.
Conway의 인생 게임에 대한 설명은 Wikipedia 페이지를 방문하십시오.

static const float h_kernel[] = { 1 , 1 , 1 , 1 , 0 , 1 , 1 , 1 , 1 };
static const array kernel ( 3 , 3 , h_kernel, afHost);
array state = (randu( 128 , 128 , f32) > 0.5 ).as(f32); // Init state
Window myWindow ( 256 , 256 );
while (!myWindow.close()) {
array nHood = convolve (state, kernel); // Obtain neighbors
array C0 = (nHood == 2 ); // Generate conditions for life
array C1 = (nHood == 3 );
state = state * C0 + C1; // Update state
myWindow. image (state); // Display
}전체 소스 코드는 여기에서 찾을 수 있습니다.

array predict ( const array &X, const array &W) {
return sigmoid ( matmul (X, W));
}
array train ( const array &X, const array &Y,
double alpha = 0.1 , double maxerr = 0.05 ,
int maxiter = 1000 , bool verbose = false ) {
array Weights = constant ( 0 , X. dims ( 1 ), Y. dims ( 1 ));
for ( int i = 0 ; i < maxiter; i++) {
array P = predict (X, Weights);
array err = Y - P;
if (mean< float >( abs (err) < maxerr) break ;
Weights += alpha * matmulTN (X, err);
}
return Weights;
}
...
array Weights = train(train_feats, train_targets);
array test_outputs = predict(test_feats, Weights);
display_results< true >(test_images, test_outputs,
test_targets, 20 );전체 소스 코드는 여기에서 찾을 수 있습니다.
더 많은 코드 예제를 보려면 examples/ 디렉토리를 방문하십시오.
여기에서 전체 문서를 찾을 수 있습니다.
빠른 링크 :
Arrayfire에는 여러 공식 및 커뮤니티가 유지 관리 된 언어 API가 있습니다.
† †
† 커뮤니티 유지 관리 래퍼
진행중인 포장지
Arrayfire Developers 커뮤니티는 관심이 있고 최고 성능의 텐서 기능을 작성할 수 있다면 우리와 함께 구축하도록 초대합니다. 우리는 함께 모든 사람을위한 빠른 과학 컴퓨팅을위한 Arrayfire Mission을 이행 할 수 있습니다.
모든 종류의 공헌을 환영합니다! 후원, 개발자 커뮤니티 또는 거버넌스를 통해 배열 커뮤니티에 어떻게 참여할 수 있는지에 대한 자세한 내용은 Wiki 및 당사 행동 강령을 참조하십시오.
배열 파이어를 재분배하는 경우 라이센스에 설정된 이용 약관을 따르십시오. 학술 간행물에서 배열 파이어를 인용하려면 다음 인용 문서를 사용하십시오.
Arrayfire Development는 Accelereyes LLC와 여러 제 3자가 자금을 지원합니다. 감사의 표현에 대한 승인 목록을 참조하십시오.
문자 그대로의 마크 "Arrayfire"및 Arrayfire Logos는 Accelereyes LLC (DBA Arrayfire)의 상표입니다. 자신의 프로젝트 에서이 마크 중 하나를 사용하려면 Arrayfire의 상표 정책을 참조하십시오.