f16 in AVX?
~greg heil
picsrp.github.io
i.tgu.ca/real_cal
--
from: Eric Iverson
date: Feb 28, 2022, 10:36 AM
subject: [Jprogramming] arrayfire addon updated
arrayfire addon updated with minor fixes
>Main change is matmul now has wrappers for best performance for either f64 or
>f32 (
arrayfire addon updated with minor fixes
Main change is matmul now has wrappersfor best performance for either f64
or f32 (avoids expensive conversion of row major to column major with
square matrices by using matmul transpose flag).
Get started:
load '~addons/math/arrayfire/arrayfire.ijs'
...
arrayfire addon updated
The addon allows high performance computing of matrix product
and many other mathematical array operations. Multiple cpu
cores and hardware such as Nvidia gpus are used as appropriate.
Browse https://arrayfire.org for more info.
There are many small improvements and a new
The start-up experience is now much more informative & welcoming. Nice!
On my laptop (4 cores) with WSL using the cpu backend to run the matmul
benchmark,
it looks as though the point at which jaf outperforms native J matrix
multiplication is about 150x150
On Mon, Jan 31, 2022 at 7:14 AM Eric Ive
My point was just that it’s not made explicitly clear which comment applies to
which of fp32 or fp64. Easy enough to fix, of course.
Thanks,
Mike
Sent from my iPad
> On 30 Jan 2022, at 22:49, 'Pascal Jasmin' via Programming
> wrote:
>
> The fp64 resuts match J in all 3 arrayfire backends f
The fp64 resuts match J in all 3 arrayfire backends for me. The fp32 differ on
all 3 backends. I think AMD gpus also match with fp64.
On Sunday, January 30, 2022, 05:33:08 p.m. EST, 'Mike Day' via Programming
wrote:
So ...bench/matmul.ijs now has mpx, which now calls mptime, and r
So ...bench/matmul.ijs now has mpx, which now calls mptime, and returns
benchmarks for f64 and f32.
It’s fairly obvious what’s meant, but I’m getting two comments comparing J and
AF results, but they don’t state which of f36 or f64 applies. I’m
copy-typing, again, so typos rule:
J and AF r
The arrayfire addon updated with minor fixes and changes.
Note that the mp_bench.ijs script has been renamed to be matmul.ijs.
It might be stable enough now to start looking at what it can do for
performance. This is especially true if you have a higher end nvidia card.
--
Sorry, iPad spell-checker rendered “mptime” as “motive”!
M
Sent from my iPad
> On 30 Jan 2022, at 10:49, 'Mike Day' via Programming
> wrote:
>
> One glitch:
> man_jaf_ ‘benchmarks’
> ...
> motive 4000NB. takes sev seconds
> ...
>
> mptime 4000
> |domain error: mptime
>
> mptime
One glitch:
man_jaf_ ‘benchmarks’
...
motive 4000NB. takes sev seconds
...
mptime 4000
|domain error: mptime
mptime turns out to be dyadic
Mike
Sent from my iPad
> On 28 Jan 2022, at 21:51, Eric Iverson wrote:
>
> Mike,
> FIxed. Update and please try again.
>
> On Fri, Jan
Not a problem, just hoping for some enlightenment.
As Raul found, init_jaf_ worked with both ‘cpu’ and ‘opencl’ but not ‘cuda’.
The last didn’t surprise me, as I hadn’t downloaded cuda.
However, while ... freeall ‘’ after init ‘cpu’ (dropping the _jaf_) reported,
verbosely,
...
[0] AMD:
On Fri, Jan 28, 2022 at 6:52 PM Eric Iverson wrote:
> Meanwhile, are you able to run the tutorials etc with the cpu backend?
I have not worked through all of the tutorials, yet.
But those that I have tried have worked.
That said, I was using the opencl backend, rather than the cpu backend.
Tha
For example, perhaps the first time math/arrayfire is loaded, it could
do init_jaf_'cpu' and if that fails, it could report that the
supporting arrayfire library is not installed. But if that succeeds,
later messages could suggest other possibilities.
Thanks,
--
Raul
On Fri, Jan 28, 2022 at 6
Raul,
Good point. Init tries to load the library and if that fails it gives the
af not installed error. But trying to load the cuda library will fail if
cuda is not installed. So the error message is misleading. I will fix this,
'
Meanwhile, are you able to run the tutorials etc with the cpu backen
On Fri, Jan 28, 2022 at 6:15 PM 'Pascal Jasmin' via Programming
wrote:
> If you only have the error on 'cuda', its bc you don't have nvidia gpu.
I understand that.
But I feel that the error should not say that arrayfire is not
installed when arrayfire is, in fact, installed.
Thanks,
--
Raul
-
If you only have the error on 'cuda', its bc you don't have nvidia gpu.
On Friday, January 28, 2022, 06:09:05 p.m. EST, Raul Miller
wrote:
init_jaf_'cpu'
init_jaf_'opencl'
init_jaf_'cuda'
ArrayFire not installed or not installed where init is looking
man_jaf_'install arrayfire
init_jaf_'cpu'
init_jaf_'opencl'
init_jaf_'cuda'
ArrayFire not installed or not installed where init is looking
man_jaf_'install arrayfire' NB. for more info
|assertion failure: assert
| ('load library failed: ',t)assert 0[echo afmissing
I think my problem here is different from
Thanks. Vn 2.1.7 loads ok.
Sorry about the typos on my part: JAPP for JAFP, etc I was copy-typing from
laptop onto this iPad which isn’t up to running J903.
Mike
Sent from my iPad
> On 28 Jan 2022, at 21:51, Eric Iverson wrote:
>
> Mike,
> FIxed. Update and please try again.
>
> On Fri
Mike,
FIxed. Update and please try again.
On Fri, Jan 28, 2022 at 4:44 PM Eric Iverson
wrote:
> Sloppy release on my part. I will fix this in a few minutes.
>
>
> On Fri, Jan 28, 2022 at 4:39 PM 'Mike Day' via Programming <
> programm...@jsoftware.com> wrote:
>
>> I’ve just updated the addon to
Sloppy release on my part. I will fix this in a few minutes.
On Fri, Jan 28, 2022 at 4:39 PM 'Mike Day' via Programming <
programm...@jsoftware.com> wrote:
> I’ve just updated the addon to Vn 2.1.6, and tried
>
>load ‘~addons/math/arrayfire/arrayfire.ijs’
> |value error: JAPP
> | d=.toJ
I’ve just updated the addon to Vn 2.1.6, and tried
load ‘~addons/math/arrayfire/arrayfire.ijs’
|value error: JAPP
| d=.toJ Freda. JAPP,’man.txt’
|[-56] c:\…\addons\…\arrayfire.ijs
This is in the latest J version,
j903/j64avx2/Windows
Release-b...28T04:09:50
Library: 9.03.08
...
I ran J
arrayfire addon has been updated
first load of arrayfire.ijs in a session now displays man_jaf_'intro'
create/get of f32 (32bit float) data works (tut_jaf_'create')
this allows bench/mp_bench.ijs to do timings with f32
low end nvidia cards have fast f32 performance and slow f64 performance
wit
Thanks for the feedback.
af_matmul just starts dthe op on the gpu (or other cpu theads) and returns
almost immediately. af_sync waits until the op is done. This is clear if
you play with them in the repl.
Retail nvidia gpu support for 64bit float is slow. For example, on my GTX
1050 Ti matmul wi
Yes, it might make sense to include the arrayfire lib in some way with the
addon. Let's get a bit more experience with it as it stands and then
decide. For example, the addon could offer the option of getting the lib
from jsoftware.com.
Note that arrayfire includes opencl lib in its lib so we woul
I checked the lib folder is about 1GB after zipped. The installer
downloaded from arrayfire is about 7GB.
On Fri, 28 Jan 2022 at 9:18 AM bill lam wrote:
> I think af addon doesn't need include or lib files to run. If dll files
> only are mandatory, can these windows dll be downloaded from j soft
thank you Eric,
I see the point that making dyads would lose access to options. Its a matter
of opinion as to whether the options are useful enough to "need them". My
opinion is that they are not, and we/users who need to optimize calls with
options could "easily" make a "linear cover functio
instructions in
man_jaf_ 'bench'
mptime 600 gets faster results on init_jaf_ 'cpu' and init_jaf_ 'cuda'
on my system. But that is full round trip to J execution.
If you are keeping results on gpu for further processing, then its faster for
all matrix sizes as arrayfire structures. A
This looks really interesting.
My first look at this was mp_bench.ijs example. This produces (on my iMac):
┌┬┐
│ step │ millis │
├┼┤
│mp │3260│
├┼┤
│acreate │708 │
├┼┤
│bcreate │474 │
├┼┤
│matmul │
Thanks Eric - this looks very promising!
I managed to get it installed & running on WSL although I needed to amend
the instructions on the arrayfire website somewhat so I could write to
/etc/ld.so.conf.d/
Any thoughts on where the switchover point is at which Arrayfire is
compelling relative to J'
I think af addon doesn't need include or lib files to run. If dll files
only are mandatory, can these windows dll be downloaded from j software
website and put into a folder under the af addon?
On Fri, 28 Jan 2022 at 5:08 AM Eric Iverson
wrote:
> arrayfire addon updated
>
> * improved init
>
>
I did manage to install it eventually!
Other Windows users might wish to know that I found I needed to load J as an
administrator to avoid failure.
Thanks,
Mike
Sent from my iPad
> On 27 Jan 2022, at 21:07, Eric Iverson wrote:
>
> arrayfire addon updated
>
> * improved init
>
> * support
arrayfire addon updated
* improved init
* support for apple m1
* Pascal's idea that integer lists are better than boxed lists
this required changes in several of the tutorial examples
for example,
q=. af_matmul_jaf_ af1;af2
was changed to
q=. af_matmul_jaf_ af1,af2
* J like dyad synt
Bill's change will be pushed to addons later today. I will post when the
new version is available.
On Thu, Jan 27, 2022 at 1:11 PM Andreas Lagerås
wrote:
> Hi,
>
> May I ask how you updated it to work with the homebrew arrayfire, or will
> that be fixed in a future version?
>
> Best regards,
> /
Hi,
May I ask how you updated it to work with the homebrew arrayfire, or will
that be fixed in a future version?
Best regards,
/Andreas
Den tors 27 jan. 2022 kl 15:23 skrev bill lam :
> I have made a minor update to the addon to allow use arrayfire installed
> via homebrew.
>
> on apple m1
> in
Jan-Pieter,
Thanks for your feedback. Your fixes will be in the next version.
I have not tested with opencl and will get to that shortly. I thought of
this as primarily a way to use nvidia gpus. But the cpu support works well
and so probably does opencl.
Not sure where this leads. Probably not m
Jan-Pieter,
ArrayFire uses a modified CSR from the wikipedia documentation. Instead of
just counts it has +/\ counts. It also has a leading 0 and a trailing value.
On Thu, Jan 27, 2022 at 3:50 AM Jan-Pieter Jacobs <
janpieter.jac...@gmail.com> wrote:
> Thanks for the explanation Hauke.
> I guess
I have made a minor update to the addon to allow use arrayfire installed via
homebrew.
on apple m1
init_jaf_ 'cpu' and 'opencl' are available but 'opencl' doesn't support double
precision
> On 27 Jan 2022, at 12:42 AM, Eric Iverson wrote:
>
> Apologies for the rough start. The development wa
I’m away from home, with only a mobile router, so I attempted the downloads at
our son’s house. TalkTalk, my service provider, won’t let me send email from
my laptop using his router, so perhaps it’s stopping the validation, but only
after using up a GB or two of his service! Virus-checker (
Thanks for the explanation Hauke.
I guess that shows that I never studied computer science. I expected rows
and cols to just be indices of the non-zero items, as 4&$. returns for J's
sparse arrays.
Anyone else wondering can refer to
https://en.m.wikipedia.org/wiki/Sparse_matrix where the CRS storag
should have read
the first entry in row x …
where x is the index of the number in list rows,
and n is that number
Am 27.01.22 um 01:25 schrieb Hauke Rehr:
rows says: the first entry in col x is the n-th entry in values
--
--
mail written using NEO
neo-layout.org
--
rows says: the first entry in col x is the n-th entry in values
row 0 0th (if any)
row 1 2nd (if any)
(so in row 0 we had 2 values)
row 2 3rd (if any)
(so in row 1 we had 1 value)
row 3 5th (if any)
(so in row 2 we had 2 values)
row 4 5th (if any)
(so in row 3 we had 0 values)
etc.
Am 26.01.22 u
Hi,
I tried out the add-on, it looks very promising!
After managing to install ArrayFire (apparently the logical "apt install"
didn't work), I tried the basic tutorial and found the following line
causes J to segfault when using the opencl backend:
display_jaf_ afaiNB. get AF text display
I did not have any problem installing on win10. It seems win11 is
tightening the rules. You will need to take some extra step to override the
security check.
On Wed, Jan 26, 2022 at 3:35 PM 'Mike Day' via Programming <
programm...@jsoftware.com> wrote:
> Just about downloading ArrayFire for Windo
Just about downloading ArrayFire for Windows 11...
I tried downloading the two exe files, one for W11, which failed, and then
W10, also a failure. The failures both reported inability to verify.
My son has just commented that it’s a common M/S feature... Anyone else seen
this behaviour?
The signature for af_add:
af_add (af_array *out, const af_array lhs, const af_array rhs, const bool batch)
with lhs and rhs as parameter names, I don't think J users would get lost if
they called the "cover function" dyadically the same way they call +
I'm not suggesting altering any existing c
Pascal,
Interesting ideas on arrayfire args.
I will probably resist the idea of making dop verbs dyadic. I think it
better to stick closer to the arrayfire syntax.
But it makes sense to avoid unnecessary boxing.
af_add_jaf_ afad;afbd NB. works
af_add_jaf_ afad,afbd NB. fails, but probably s
Apologies for the rough start. The development was done in linux with
arrayfire installed and not enough attention was paid to other platforms or
new users. The addon has been updated.
Raul: You were on macOS, which had not been tested at all. It should work
now if arrayfire is installed in folder
An interface suggestion would be to transform all verbs that currently take 2
boxed arguments into unboxed dyad arguments.
this can be done by adding the adverb (@:;) for the dop class verbs. and
(@:;~) for the reduce class verbs such that the operating axis is the x term.
The reduce class co
Probably not installed.
https://arrayfire.org has links
installing on windows will set AF_PATH environment variable. J accesses that.
This seems better than my earlier system of hard coding/editing variables for
the default path, but doesn't allow switching versions as easily.
I think an err
Pascal,
Thanks for the feedback. Coming from you, it means a lot to me.
There are some rough edges for windows and mac (I work mostly in linux)
that I will fix tomorrow morning.
On Tue, Jan 25, 2022 at 3:52 PM 'Pascal Jasmin' via Programming <
programm...@jsoftware.com> wrote:
> looks good. A
looks good. A small bug:
if you define
reduce_z_ =: ]: NB. adverb
prior to loading arrayfire.ijs
load will fail.
The reason is the families.ijs file creates a bunch of forks with their middle
verbs defined after the forks are created.
An easy fix is to define all of the explicit verbs used
I think both problems reported so far indicate that ArrayFire is not
installed or is not installed in the 'normal place'. The failure report
should be made more clear.
I will be able to work on this later today.
On Tue, Jan 25, 2022 at 11:25 AM Michail L. Liarmakopoulos <
m.l.liarm...@gmail.com>
Hello, Eric,
This is great news actually. I hope this project goes forward.
That said, I've encountered an error when trying to run `init_jaf_'cpu'`,
after having installed with pacman the library:
```
load'~addons/math/arrayfire/arrayfire.ijs'
man_jaf_'intro'
*** intro
J-ArrayFire cd bindin
load'pacman'
'install' jpkg 'math/arrayfire'
load '~addons/math/arrayfire/arrayfire.ijs'
init_jaf_ 'cpu'
|need to set lib: assert
What step am I missing here?
man_jaf_ 'intro'
had said:
cpu- always available and uses cpu memory and cores
So perhaps this is unintended behavior
~addons/math/arrayfire is a new addon for J903 and later.
The addon allows high performance computing of matrix product
and many other mathematical array operations. Multiple cpu
cores and hardware such as Nvidia gpus are used as appropriate.
Browse https://arrayfire.org for more info.
The addon
a 250x speed improvement over J for floating point
matrix multiplication on array size of 1024x1024 (including setup and results
going back to J).
- Original Message -
From: Alex Shroyer
To: programm...@jsoftware.com
Cc:
Sent: Saturday, September 26, 2015 10:07 PM
Subject: Re:
)
- Original Message -
From: bill lam
To: 'Pascal Jasmin' via Programming
Cc:
Sent: Monday, September 28, 2015 11:55 PM
Subject: Re: [Jprogramming] Arrayfire bindings
Yes you are correct, only cpu icd is supported for intel xeon.
The gpu icd needs a purchase from intel. But I think money
featured assembly, but this is a guess.
>
>
> - Original Message -
> From: bill lam
> To: 'Pascal Jasmin' via Programming
> Cc:
> Sent: Monday, September 28, 2015 11:28 AM
> Subject: Re: [Jprogramming] Arrayfire bindings
>
> Does your GPU support fp64
though opencl (w f64 cpu) does match 0%0.
- Original Message -
From: 'Pascal Jasmin' via Programming
To: "programm...@jsoftware.com"
Cc:
Sent: Monday, September 28, 2015 1:16 PM
Subject: Re: [Jprogramming] Arrayfire bindings
will update library later, but 0^0
t: Monday, September 28, 2015 1:08 AM
> Subject: Re: [Jprogramming] Arrayfire bindings
>
> Hmm I'm trying to find where in the arrayfire docs it talks about
> hardware requirements for f64.
>
> Can you point me in the right direction?
>
> Thanks,
>
---
es cards
https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units
https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units
- Original Message -
From: Raul Miller
To: Programming forum
Cc:
Sent: Monday, September 28, 2015 1:08 AM
Subject: Re: [Jprogramming] Arrayfire bindin
t this is a guess.
- Original Message -
From: bill lam
To: 'Pascal Jasmin' via Programming
Cc:
Sent: Monday, September 28, 2015 11:28 AM
Subject: Re: [Jprogramming] Arrayfire bindings
Does your GPU support fp64? OpenCL should already have support for
fp64, on my intel i7 which has
re J is
> actually faster than using arrayfire, that you either find out through
> benchmarking the same code, or dynamically switching implementation based on
> input size.
>
>
>
>
>
>
>
> - Original Message -
> From: bill lam
> To: 'Pasca
based on
input size.
- Original Message -
From: bill lam
To: 'Pascal Jasmin' via Programming
Cc:
Sent: Monday, September 28, 2015 1:22 AM
Subject: Re: [Jprogramming] Arrayfire bindings
The speed improvement is impressive, btw did you also verfiy the
calculation results
ed improvement over J for floating
> point matrix multiplication on array size of 1024x1024 (including setup and
> results going back to J).
> >
> >
> >
> >
> > - Original Message -
> > From: Alex Shroyer
> > To: programm...@jsoftware.com
>
ginal Message -
From: Raul Miller
To: Programming forum
Cc:
Sent: Monday, September 28, 2015 1:08 AM
Subject: Re: [Jprogramming] Arrayfire bindings
Hmm I'm trying to find where in the arrayfire docs it talks about
hardware requirements for f64.
Can you point me in the right directio
rest neighbour algorithm.
>
>
> - Original Message -
> From: 'Bo Jacoby' via Programming
> To: "programm...@jsoftware.com"
> Cc:
> Sent: Monday, September 28, 2015 12:52 AM
> Subject: Re: [Jprogramming] Arrayfire bindings
>
> What is Arrayfire is al
vices support double precision
(f64)
- Original Message -
From: Raul Miller
To: Programming forum
Cc:
Sent: Monday, September 28, 2015 1:08 AM
Subject: Re: [Jprogramming] Arrayfire bindings
Hmm I'm trying to find where in the arrayfire docs it talks about
hardware requirements for
>
>
>
>
> - Original Message -
> From: Alex Shroyer
> To: programm...@jsoftware.com
> Cc:
> Sent: Saturday, September 26, 2015 10:07 PM
> Subject: Re: [Jprogramming] Arrayfire bindings
>
> Very cool. I did an audio processing thing in J a while back which
neighbour algorithm.
- Original Message -
From: 'Bo Jacoby' via Programming
To: "programm...@jsoftware.com"
Cc:
Sent: Monday, September 28, 2015 12:52 AM
Subject: Re: [Jprogramming] Arrayfire bindings
What is Arrayfire is all about?-- Bo
Den 6:29 mandag de
ubject: Re: [Jprogramming] Arrayfire bindings
Very cool. I did an audio processing thing in J a while back which I think
would have benefited from something like this. Perhaps now I'll re-implement it
using Jfire.
Thanks for sharing!
Alex
-Original Message-
From: "'Pascal Jasmi
going back to J).
- Original Message -
From: Alex Shroyer
To: programm...@jsoftware.com
Cc:
Sent: Saturday, September 26, 2015 10:07 PM
Subject: Re: [Jprogramming] Arrayfire bindings
Very cool. I did an audio processing thing in J a while back which I think
would have benefited from
: 9/26/2015 7:03 PM
To: "Programming Forum"
Subject: [Jprogramming] Arrayfire bindings
https://github.com/Pascal-J/Jfire
There are probably some helpful applications for it. Mostly with floating
point. (A lot of work for something I don't use much :P)
Hope you like
https://github.com/Pascal-J/Jfire
There are probably some helpful applications for it. Mostly with floating
point. (A lot of work for something I don't use much :P)
Hope you like the interface for it. Its fairly J like.
--
For
;Pascal Jasmin' via Programming
Cc:
Sent: Monday, September 21, 2015 2:33 AM
Subject: Re: [Jprogramming] Arrayfire (OpenCl/Cuda Blas Boost)
If they have c interface, you can just call like that you had
done in openssl. That said, I guess passing data in and out of GPU
memory is an expensive o
t; api sometimes. I linked to a c version of indexing in last message. (bottom
> 3 of the 5 functions on that page.
>
>
> - Original Message -
> From: bill lam
> To: 'Pascal Jasmin' via Programming
> Cc:
> Sent: Monday, September 21, 2015 2:07 AM
> Subject
nt: Monday, September 21, 2015 2:07 AM
Subject: Re: [Jprogramming] Arrayfire (OpenCl/Cuda Blas Boost)
Arrayfile looks like c++ library, it is difficult to be called
from J as a shared object.
Пн, 21 сен 2015, jprogramming написал(а):
> I was worried about the parentheses being part of the 'ope
tp://www.arrayfire.com/docs/group__index__func__index.htm
>
> It also looks like their span "keyword" could be a null parameter.
>
>
> - Original Message -
> From: Raul Miller
> To: Programming forum
> Cc:
> Sent: Monday, September 21, 2015 1:13 AM
>
age -
From: Raul Miller
To: Programming forum
Cc:
Sent: Monday, September 21, 2015 1:13 AM
Subject: Re: [Jprogramming] Arrayfire (OpenCl/Cuda Blas Boost)
Well, I guess we only really need 1 or 2 dimensions from AF, so maybe
that's no big deal. And we get to decide what we call a row
> To: Programming forum
> Cc:
> Sent: Sunday, September 20, 2015 11:28 PM
> Subject: Re: [Jprogramming] Arrayfire (OpenCl/Cuda Blas Boost)
>
> One step at a time...
>
> (But if it was mostly ready, I guess talk with the ISI folk about
> getting it the rest of the way?)
&g
, call (seq 0 _1);1 2. One problem though is that the name of
the function to call is 'operator()' . Is such a name bindable in J?
- Original Message -
From: Raul Miller
To: Programming forum
Cc:
Sent: Sunday, September 20, 2015 11:28 PM
Subject: Re: [Jprogramming] Arrayfi
One step at a time...
(But if it was mostly ready, I guess talk with the ISI folk about
getting it the rest of the way?)
--
Raul
On Sun, Sep 20, 2015 at 11:26 PM, Henry Rich wrote:
> Fun. And very important to the future of J.
>
> But if you do something great, how do you get it into the offi
Fun. And very important to the future of J.
But if you do something great, how do you get it into the official
distribution?
Henry Rich
On 9/20/2015 11:22 PM, Raul Miller wrote:
I don't think anyone has been working on this.
Note also that J's arrays are built on a C infrastructure where a
I don't think anyone has been working on this.
Note also that J's arrays are built on a C infrastructure where a pair
of one dimensional arrays (shape and data) represent an arbitrary
dimensioned J array.
That said... how hard do you think it would be to implement the rank
conjunction? (Rank migh
My short question is has anyone already started a project binding Arrayfire
library to J... even if it is only partially complete?
Arrayfire is an open source C++ library with c ffi, with multiplatform binaries
for easy start, that supports acceleration of functions on GPU and CPU
(multithreadi
85 matches
Mail list logo