[Mesa-dev] [PATCH 1/1] clover: Align kernel argument sizes to nearest power of 2
Francisco Jerez
currojerez at riseup.net
Fri Apr 25 02:32:43 PDT 2014
Jan Vesely <jan.vesely at rutgers.edu> writes:
> Signed-off-by: Jan Vesely <jan.vesely at rutgers.edu>
> ---
>
> Hi,
>
> this is the alternative (power of 2) approach to hadling kernel args,
> as discussed in this thread:
> http://lists.freedesktop.org/archives/mesa-dev/2014-April/thread.html#58209
>
> Jan
>
> src/gallium/state_trackers/clover/llvm/invocation.cpp | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp b/src/gallium/state_trackers/clover/llvm/invocation.cpp
> index a81bdf8..8e5b49b 100644
> --- a/src/gallium/state_trackers/clover/llvm/invocation.cpp
> +++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp
> @@ -64,6 +64,7 @@
>
> #include "pipe/p_state.h"
> #include "util/u_memory.h"
> +#include "util/u_math.h"
>
> #include <iostream>
> #include <iomanip>
> @@ -309,6 +310,9 @@ namespace {
>
> llvm::Type *arg_type = arg.getType();
> unsigned arg_size = TD.getTypeStoreSize(arg_type);
> + if (!util_is_power_of_two(arg_size)) {
The 'if' is redundant, util_next_power_of_two() does nothing when its
argument is a power of two already. Could you add a comment here
quoting the relevant text from the spec (Section 6.1.5 of the OpenCL 1.2
specification, "A built-in data type that is not a power of two bytes in
size must be aligned to the next larger power of two.") and mentioning
that in particular this is required to give 3-element vectors the
correct API size?
> + arg_size = util_next_power_of_two(arg_size);
Could you define a new variable for this (e.g. "const unsigned
arg_api_size"), and maybe rename "arg_size" to "arg_store_size" so the
difference is clear? I believe we'll want to use "arg_store_size" in
line 314, and "arg_api_size" in lines 329, 341 and 355.
Thank you.
> + }
>
> llvm::Type *target_type = arg_type->isIntegerTy() ?
> TD.getSmallestLegalIntType(mod->getContext(), arg_size * 8) :
> --
> 1.9.0
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 229 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140425/77b51afe/attachment.sig>
More information about the mesa-dev
mailing list