OCCA adalah kerangka kerja sumber terbuka, portabel, dan netral vendor untuk pemrograman paralel pada platform heterogen. OCCA API menyediakan model terpadu untuk konsep pemrograman heterogen—seperti perangkat, memori, atau kernel—sementara OCCA Kernel Language (OKL) memungkinkan pembuatan kernel perangkat portabel menggunakan ekstensi berbasis arahan ke bahasa C.
Aplikasi sains dan teknik komputasi penting dari sektor publik dan swasta bergantung pada OCCA. Pengguna terkemuka termasuk Departemen Energi AS dan Shell.
Fitur Utama
OCCA menggunakan sistem pembangunan CMake. Lihat panduan instalasi untuk gambaran menyeluruh tentang semua pengaturan build dan instruksi untuk membangun di Windows atau Mac OS.
Demi kenyamanan, skrip configure-cmake.sh
telah disediakan untuk menggerakkan build CMake. Kompiler, flag, dan parameter build lainnya dapat disesuaikan di sana. Secara default, skrip ini menggunakan ./build
dan ./install
untuk direktori build dan install.
Berikut ini menunjukkan urutan umum perintah shell untuk membangun, menguji, dan menginstal occa:
$ ./configure-cmake.sh
$ cmake --build build --parallel < number-of-threads >
$ ctest --test-dir build --output-on-failure
$ cmake --install build --prefix install
Jika dependensi dipasang di lokasi non-standar, setel variabel lingkungan yang sesuai ke jalur ini.
Selama instalasi, file Env Modules <install-prefix>/modulefiles/occa
dibuat. Saat modul ini dimuat, jalur ke direktori bin
, lib
, dan include
yang terinstal ditambahkan ke variabel lingkungan seperti PATH
dan LD_LIBRARY_PATH
.
Untuk kenyamanan, OCCA menyediakan file paket CMake yang dikonfigurasi selama instalasi. File paket ini menentukan target yang diimpor, OCCA::libocca
, dan mencari semua dependensi yang diperlukan.
Misalnya, CMakeLists.txt proyek hilir yang menggunakan OCCA akan menyertakan
find_package (OCCA REQUIRED)
add_executable (downstream-app ...)
target_link_libraries (downstream-app PRIVATE OCCA::libocca)
add_library (downstream-lib ...)
target_link_libraries (downstream-lib PUBLIC OCCA::libocca)
Antarmuka baris perintah OCCA dapat ditemukan di <install-prefix>/bin/occa
. Alat ini dapat digunakan untuk menanyakan informasi tentang perangkat keras dan konfigurasi OCCA pada platform tertentu.
Misalnya, memanggil occa info
akan menyediakan backend OCCA dan spesifikasi perangkat keras terkait, sementara occa env
menampilkan nilai variabel lingkungan terkait OCCA. Untuk melihat daftar semua opsi yang tersedia, hubungi occa --help
.
$ occa info
========+======================+=================================
CPU(s) | Processor Name | AMD EPYC 7532 32-Core Processor
| Memory | 251.6 GB
| Clock Frequency | 2.4 MHz
| SIMD Instruction Set | SSE2
| SIMD Width | 128 bits
| L1d Cache Size | 1 MB
| L1i Cache Size | 1 MB
| L2 Cache Size | 16 MB
| L3 Cache Size | 256 MB
========+======================+=================================
OpenCL | Platform 0 | NVIDIA CUDA
| ----------------------+---------------------------------
| Device 0 | NVIDIA A100-PCIE-40GB
| Device Type | gpu
| Compute Cores | 108
| Global Memory | 39.40 GB
========+======================+=================================
CUDA | Device Name | NVIDIA A100-PCIE-40GB
| Device ID | 0
| Memory | 39.40 GB
========+======================+=================================
Butuh bantuan? Kunjungi wiki repositori atau ajukan pertanyaan di kategori diskusi Tanya Jawab.
Untuk memberikan umpan balik, mulailah percakapan dalam kategori diskusi umum atau ide.
Pekerjaan ini sebagian didukung oleh
OCCA tersedia di bawah lisensi MIT