Commit graph

12 commits

Author SHA1 Message Date
adam
f5e35d538b revbump for textproc/icu update 2022-04-18 19:09:40 +00:00
adam
b6d9bd86bc revbump for icu and libffi 2021-12-08 16:01:42 +00:00
wiz
38dc6152c6 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.
2021-11-20 20:05:36 +00:00
nia
495fc76c70 parallel: Replace RMD160 checksums with BLAKE2s checksums
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
2021-10-26 11:10:35 +00:00
nia
d171eeaf22 parallel: Remove SHA1 hashes for distfiles 2021-10-07 14:46:45 +00:00
nia
96ae09ba9e pocl: work around broken CPU detection on aarch64 2021-09-20 09:05:30 +00:00
nia
3764c3cc52 pocl: add test target 2021-06-11 15:09:23 +00:00
nia
ef2345cfe8 pocl: add buildlink3 file 2021-06-10 21:50:29 +00:00
nia
14897e6523 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
2021-06-10 12:26:26 +00:00
nia
277f2034bf pocl: Fix a null pointer dererence if sysfs is not present *sigh* 2021-06-10 11:18:06 +00:00
nia
7346efd5a7 pocl: fix name of vendor directory 2021-06-10 10:26:32 +00:00
nia
b6baf86b71 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.
2021-06-10 09:57:39 +00:00