From 6fe823a614279cceb2d48507bd8e93b0efd87f94 Mon Sep 17 00:00:00 2001 From: Thomas Albers Date: Sat, 4 Mar 2023 22:47:28 +0100 Subject: Initial commit --- src/package.lisp | 247 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 247 insertions(+) create mode 100644 src/package.lisp (limited to 'src/package.lisp') diff --git a/src/package.lisp b/src/package.lisp new file mode 100644 index 0000000..ce8dc38 --- /dev/null +++ b/src/package.lisp @@ -0,0 +1,247 @@ +(defpackage #:ocl-ffi + (:use #:cl) + (:export + ;; Platform APIs + %get-platform-ids + %get-platform-info + + ;; Device APIs + %get-device-ids + %get-device-info + %create-sub-devices + %retain-device + %release-device + %set-default-device-command-queue + %get-device-and-host-timer + %get-host-timer + + ;; Context APIs + %create-context + %create-context-from-type + %retain-context + %release-context + %get-context-info + set-context-destructor-callback + + ;; Command Queue APIs + %create-command-queue-with-properties + %retain-command-queue + %release-command-queue + %get-command-queue-info + + ;; Memory Object APIs + %create-buffer + create-sub-buffer + create-image + %create-pipe + create-buffer-with-properties + create-image-with-properties + %retain-mem-object + %release-mem-object + %get-supported-image-formats + %get-mem-object-info + %get-image-info + %get-pipe-info + set-mem-object-destructor-callback + + ;; SVM Allocation APIs + svm-alloc + svm-free + + ;; Sampler APIs + %create-sampler-with-properties + %retain-sampler + %release-sampler + %get-sampler-info + + ;; Program Object APIs + %create-program-with-source + create-program-with-binary + create-program-with-built-in-kernels + create-program-with-il + %retain-program + %release-program + %build-program + %compile-program + %link-program + set-program-release-callback + set-program-specialization-constant + %unload-platform-compiler + %get-program-info + %get-program-build-info + + ;; Kernel Object APIs + %create-kernel + %create-kernels-in-program + %clone-kernel + %retain-kernel + %release-kernel + %set-kernel-arg + set-kernel-arg-svm-pointer + set-kernel-exec-info + %get-kernel-info + %get-kernel-arg-info + %get-kernel-work-group-info + %get-kernel-sub-group-info + + ;; Event Object APIs + %wait-for-events + %get-event-info + %create-user-event + %retain-event + %release-event + %set-user-event-status + set-event-callback + + ;; Profiling APIs + %get-event-profiling-info + + ;; Flush and Finish APIs + %flush + %finish + + ;; Enqueued Commands APIs + %enqueue-read-buffer + enqueue-read-buffer-rect + enqueue-write-buffer + enqueue-write-buffer-rect + enqueue-fill-buffer + enqueue-copy-buffer + enqueue-copy-buffer-rect + enqueue-read-image + enqueue-write-image + enqueue-fill-image + enqueue-copy-image + enqueue-copy-image-to-buffer + enqueue-copy-buffer-to-image + enqueue-map-buffer + enqueue-map-image + enqueue-unmap-mem-object + enqueue-migrate-mem-objects + %enqueue-nd-range-kernel + enqueue-native-kernel + enqueue-marker-with-wait-list + enqueue-barrier-with-wait-list + %enqueue-svm-free + %enqueue-svm-memcpy + %enqueue-svm-memfill + %enqueue-svm-map + %enqueue-svm-unmap + %enqueue-svm-migrate-mem + + ;; Extension function access + get-extension-function-address-for-platform + + ;; Deprecated OpenCL 1.0 APIs + set-command-queue-property + + ;; Deprecated OpenCL 1.1 APIs + create-image-2d + create-image-3d + enqueue-marker + %enqueue-wait-for-events + enqueue-barrier + unload-compiler + get-extension-function-address + + ;; Deprecated OpenCL 2.0 APIs + %create-command-queue + create-sampler + enqueue-task + + ;; Types + cl-char + cl-uchar + cl-short + cl-ushort + cl-int + cl-uint + cl-long + cl-ulong + + cl-half + cl-float + cl-double + + cl-platform-id + cl-device-id + cl-context + cl-command-queue + cl-mem + cl-program + cl-kernel + cl-event + cl-sampler + + cl-error-code + cl-bool + cl-bitfield + cl-properties + + cl-platform-info + cl-device-info + + cl-device-mem-cache-type + cl-device-local-mem-type + cl-context-info + cl-command-queue-info + cl-channel-order + cl-channel-type + cl-mem-object-type + cl-mem-info + cl-image-info + cl-pipe-info + cl-addressing-mode + cl-filter-mode + cl-sampler-info + cl-program-info + cl-program-build-info + cl-build-status + cl-kernel-info + cl-kernel-arg-info + cl-kernel-arg-address-qualifier + cl-kernel-arg-access-qualifier + cl-kernel-work-group-info + cl-kernel-sub-group-info + cl-kernel-exec-info + cl-event-info + cl-command-type + cl-buffer-create-type + cl-profiling-info + cl-khronos-vendor-id + cl-device-type + cl-device-fp-config + cl-device-exec-capabilities + cl-device-svm-capabilities + cl-command-queue-properties + cl-device-affinity-domain + cl-mem-flags + cl-svm-mem-flags + cl-mem-migration-flags + cl-program-binary-type + cl-map-flags + cl-kernel-arg-type-qualifier + cl-device-atomic-capabilities + cl-device-device-enqueue-capabilities + cl-mem-properties + cl-queue-properties + cl-device-partition-property + cl-context-properties + cl-pipe-properties + cl-sampler-properties + cl-version + cl-image-format + cl-buffer-region + cl-name-version + cl-image-desc)) + +(defpackage #:ocl + (:use #:cl #:alexandria #:ocl-ffi)) + +(in-package #:ocl) + +(cffi:define-foreign-library libopencl + (:unix (:or "libOpenCL.so" "/gnu/store/i70jq190cpc45crbnrw8g8lgb4djyi9r-opencl-icd-loader-2021.06.30/lib/libOpenCL.so")) + (t (:default "libOpenCL"))) + +(cffi:use-foreign-library libopencl) -- cgit v1.2.3