Gentoo Archives: gentoo-dev

From: Marek Szuba <marecki@g.o>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] RFC: Removing ABI_X86_32 support from virtual/opencl
Date: Fri, 28 Feb 2020 13:02:30
Message-Id: 77d2fe42-4978-2e78-567e-af97010dcfd0@gentoo.org
1 Hello,
2
3 I think the time has come to follow the example of CUDA and stop
4 supporting ABI_X86_32, both natively and in multilib configurations, in
5 virtual/opencl.
6
7
8 Let us have a quick look at OpenCL providers currently listed in
9 virtual/opencl-2:
10
11 1. No 32-bit support:
12
13 - dev-libs/intel-neo (Intel GPUs from Broadwell onwards) - upstream has
14 confirmed NEO requires a 64-bit system and stated they have no plans to
15 add 32-bit support;
16
17 - dev-libs/rocm-opencl-runtime (AMD GPUs supported by the amdgpu
18 driver) - ROC ebuilds support neither multilib nor native x86, no 32-bit
19 binary packages produced by upstream;
20
21 - dev-util/intel-ocl-sdk (Intel CPUs) - closed-source, and while there
22 *are* 32-bit builds for Windows Intel only supports 64-bit Linux;
23
24
25 2. Partial 32-bit support:
26
27 - x11-drivers/nvidia-drivers (Nvidia GPUs) - all versions currently
28 available in the tree support amd64 multilib but only one of them
29 (390.132-r1, which according to the Nvidia Web site only supports legacy
30 GPUs) supports both KEYWORDS=x86 and USE=uvm.
31
32 3. Do support ABI_X86_32:
33
34 - dev-libs/beignet (Intel Sandy Bridge, Ivy Bridge and Haswell GPUs) -
35 last-rited due to having been effectively orphaned by upstream and lack
36 of official support for LLVM versions newer than 7;
37
38 - dev-libs/amdgpu-pro-opencl (AMD Polaris) - proprietary, hacky (it
39 basically pulls OpenCL-related parts of the AMDGPU Pro stack in hope
40 they will work with the open AMDGPU stack, which is not something AMD
41 supports), no longer maintained in Gentoo;
42
43 - media-libs/mesa[opencl] (old Radeon and Nvidia GPUs) - the only
44 provider without a huge list of caveats, if you both have an old-enough
45 GPU and do not mind only being able to use OpenCL 1.1. it actually seems
46 to work fine.
47
48
49 In other words, nearly every other provider either is or should be
50 (ROCm) wrapped in the "abi_x86_64? ( ! abi_x86_32 ( ... ) )" guard. This
51 makes virtual/opencl multilib support minimal at best and native-x86
52 support is even more limited.
53
54 Do we even want to still bother? Especially the multilib bit, seeing as
55 unless there is some super-special proprietary 32-bit OpenCL-aware
56 software out there, OpenCL support in Wine seems to be the only thing
57 that actually needs it - and I have my doubts regarding the usefulness
58 of running OpenCL-aware Windows software under Linux.
59
60 What do you think, guys?
61
62 Moreover, assuming we do decide to make OpenCL support 64-bit only, what
63 do you reckon should be done? Things I have thought of:
64 1. News item;
65 2. Mask USE=abi_x86_32 in virtual/opencl for all profiles and
66 USE=opencl globally for x86 profiles;
67 3. At some point later, remove the x86 keyword from virtual/opencl.
68
69
70 --
71 Marecki

Attachments

File name MIME type
signature.asc application/pgp-signature