Open marcodelapierre opened 12 months ago
What's the difference of x86_64
vs x86_64_v3
?
x86_64_v3
is a CPU family that corresponds to newer CPUs; it features a number of additional features, such as AVX2 (256 bit floating point registers for vector arithmetics). Compiling for it results in more performant binaries than for x86_64
. Pretty much all CPUs marketed after 2015 fall in this family, so there is very, very little risk of incompatibility.
OK, but still there's the need to support the target
microarchitecture then
Yes, in Spack jargon: name: 'linux/x86_64', target: 'x86_64_v3'
I have updated the original post above - indeed at first I had missed the point you have just made
I see. Main problem there's no support for target arch in the current request object
exactly, we will need to add it
We want to make sure we are able to build Wave Containers with target micro-architectures that are relevant/useful to the service.
Current status:
spackArch
when using thetarget
subdirective, see L65 in https://github.com/nextflow-io/nextflow/blob/master/modules/nextflow/src/test/groovy/nextflow/processor/ArchitectureTest.groovy#L63-L65spackArch
, see https://github.com/nextflow-io/nextflow/blob/ec156bc68232e48ba2462ebbfcf2b15af975c8e2/plugins/nf-wave/src/main/io/seqera/wave/plugin/WaveClient.groovy#L385x86_64
, see https://github.com/nextflow-io/nextflow/blob/ec156bc68232e48ba2462ebbfcf2b15af975c8e2/plugins/nf-wave/src/main/io/seqera/wave/plugin/WaveClient.groovy#L85platform
to Wave, therefore losing any information of the Spack target, see https://github.com/nextflow-io/nextflow/blob/ec156bc68232e48ba2462ebbfcf2b15af975c8e2/plugins/nf-wave/src/main/io/seqera/wave/plugin/WaveClient.groovy#L490-L506TO-DO:
x86_64_v3
For reference, list of Spack supported targets as of today: https://spack.readthedocs.io/en/latest/basic_usage.html#support-for-specific-microarchitectures