head 1.3; access; symbols pkgsrc-2021Q3:1.2.0.4 pkgsrc-2021Q3-base:1.2 pkgsrc-2021Q2:1.2.0.2 pkgsrc-2021Q2-base:1.2; locks; strict; comment @# @; 1.3 date 2021.11.20.20.05.37; author wiz; state dead; branches; next 1.2; commitid cqHofXrii3T3wzhD; 1.2 date 2021.06.10.12.26.26; author nia; state Exp; branches; next 1.1; commitid XmFXI7JIS6eddAWC; 1.1 date 2021.06.10.09.57.40; author nia; state Exp; branches; next ; commitid gXxG4IZE4LNfozWC; desc @@ 1.3 log @pocl: update to 1.8. Notable User Facing Changes --------------------------- - support for LLVM 13 - CMake: Inter-Procedural Optimization is enabled on code of runtime library (libpocl.so is compiled with -flto on systems that support it). - LTTng tracing improved - more command types are traced, and also some synchronous API calls (like clCreateBuffer) are traced. - poclcc, tests and examples can be disabled with CMake options - Valgrind support improved by making Valgrind aware of pocl's reference counting of cl_* objects - kernels which are called by kernels are now force-inlined - Support for NetBSD. - Support for Unix systems without libdl. - PoCL can now (optionally) respond to SIGUSR2 by printing some live debug information. - improved SPIR support for CUDA devices Notable Bug Fixes ----------------- - Fixed a potential crash on Unix systems without sysfs mounted. - Fixed compilation errors when building on macOS. - Fixed POCL_FAST_INIT macro; POCL_INIT_LOCK must be invoked with only one argument. - Fix bin/poclcc to not depend on OpenCL 2.0 symbols - Fixed miscompilation in kernel loops with multiple conditionals with barriers in them. Other ----- - Add cmake options PARALLEL_COMPILE_JOBS, PARALLEL_LINK_JOBS to use ninja's seperate compile and link job pools. - Improve memory architecture, buffer migration and allocation. Buffers are now allocated on a device when first used (previously each buffer was allocated on every device in context). - the single global LLVMContext was replaced with multiple LLVMContexts, one per OpenCL cl_context. OpenCL code can now be compiled in parallel when using separate cl_contexts. This feature is disabled by default since it significantly slowed down PyOpenCL. This should be resolved by separating LLVM compilation in their own threads in the future. - a new OpenCL extension was added to PoCL: cl_pocl_content_size. The extension allows the user to give optimization hint to PoCL, which will be used internally by PoCL to optimize buffer transfers between multiple devices. @ text @$NetBSD: patch-config.h.in.cmake,v 1.2 2021/06/10 12:26:26 nia Exp $ Fix detection of dlopen https://github.com/pocl/pocl/pull/950 --- config.h.in.cmake.orig 2021-05-19 08:12:19.000000000 +0000 +++ config.h.in.cmake @@@@ -35,6 +35,8 @@@@ #cmakedefine ENABLE_SPIRV +#cmakedefine HAVE_DLFCN_H + #cmakedefine HAVE_FORK #cmakedefine HAVE_VFORK @@@@ -57,8 +59,6 @@@@ #cmakedefine HAVE_LTTNG_UST -#cmakedefine HAVE_LIBDL - #cmakedefine HAVE_OCL_ICD #cmakedefine HAVE_POSIX_MEMALIGN @ 1.2 log @pocl: add links to upstream pull requests for patches cpuinfo: check for fopen() failure when opening sysfs nodes to avoid segfault https://github.com/pocl/pocl/pull/948 pocl_timing: fix detection of Unix monotonic clocks https://github.com/pocl/pocl/pull/949 Fix detection of dlopen()/libdl https://github.com/pocl/pocl/pull/950 @ text @d1 1 a1 1 $NetBSD: patch-config.h.in.cmake,v 1.1 2021/06/10 09:57:40 nia Exp $ @ 1.1 log @add parallel/pocl OpenCL (Open Computing Language) is an open, royalty-free standard for cross-platform, parallel programming of diverse accelerators found in supercomputers, cloud servers, personal computers, mobile devices and embedded platforms. PoCL is a portable open source (MIT-licensed) implementation of the OpenCL standard (1.2 with some 2.0 features supported). In addition to being an easily portable multi-device (truely heterogeneous) open-source OpenCL implementation, a major goal of this project is improving interoperability of diversity of OpenCL-capable devices by integrating them to a single centrally orchestrated platform. @ text @d1 1 a1 1 $NetBSD$ d3 2 a4 1 dlfcn.h is a separate thing to libdl and should be detected separately. @