Skip to content

[BUG, CUDA backend] af::shift cannot shift an array with one row #3532

Description

@FloopCZ

af::shift produces invalid result (a single repeating value) when shifting an array made of a single row on CUDA backend. On CPU backend, it works correctly.

#include <arrayfire.h>

int main() {
    af::info();

    af::array A = af::randu(1, 10);
    af::print("A", A);

    af::array A_shifted = af::shift(A, 0, 1);
    af::print("A shifted", A_shifted);

    A_shifted = af::shift(A, 1, 0);
    af::print("A shifted", A_shifted);
}

Compile and run:

$ g++ -lafcuda bug.cpp && ./a.out

Output:

ArrayFire v3.8.3 (CUDA, 64-bit Linux, build default)
Platform: CUDA Runtime 12.0, Driver: 545.29.06
[0] NVIDIA RTX A500 Laptop GPU, 3905 MB, CUDA Compute 8.6
A
[1 10 1 1]
   Offset: 0
   Strides: [1 1 10 10]
    0.6010     0.0278     0.9806     0.2126     0.0655     0.5497     0.2864     0.3410     0.7509     0.4105
A shifted
[1 10 1 1]
   Offset: 0
   Strides: [1 1 10 10]
    0.4105     0.4105     0.4105     0.4105     0.4105     0.4105     0.4105     0.4105     0.4105     0.4105
A shifted
[1 10 1 1]
   Offset: 0
   Strides: [1 1 10 10]
    0.6010     0.6010     0.6010     0.6010     0.6010     0.6010     0.6010     0.6010     0.6010     0.6010

System:

Linux pine 6.7.2-arch1-2 #1 SMP PREEMPT_DYNAMIC Wed, 31 Jan 2024 09:22:15 +0000 x86_64 GNU/Linux
ArrayFire v3.8.3 (CUDA, 64-bit Linux, build default)
Platform: CUDA Runtime 12.0, Driver: 545.29.06
NVIDIA RTX A500 Laptop GPU, 3905 MB, CUDA Compute 8.6

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions