Code Monkey home page Code Monkey logo

perl-cuda-minimal's People

Contributors

run4flat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

perl-cuda-minimal's Issues

Failing "Kernel invocations after DeviceReset succeed" test from t/z_kernel_invocations.t

Running tests (./Build test) after build results in

Failed 1/6 test programs. 1/66 subtests failed.

Examining failing test gives the following result:

$ ./Build test --verbose=1 --test_files t/z_kernel_invocations.t
[...]
ok 26 - Further kernel invocations return an unspecified launch failure
not ok 27 - Kernel invocations after DeviceReset succeed

#   Failed test 'Kernel invocations after DeviceReset succeed'
#   at t/z_kernel_invocations.t line 93.
ok 28 - Device resets invalidate previously allocated memory
# Looks like you failed 1 test of 28.
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/28 subtests 
[...]

This is Linux 2.6.36-gentoo-r4, on x86_64, with perl v5.12.3, Cuda compilation tools, release 4.0, V0.2.1221, CUDA 4.0.13, with GeForce GTX 480 (2.0 device).

Bump up ExtUtils::nvcc depedency version

Haven't looked at Buld.PL for a little bit. It needs to be bumped up to ExtUtils::nvcc v 0.03. It doesn't matter much since only 0.03 is available on CPAN, but it's good to keep the bookkeeping up-to-date.

Get invalid configuration argument instead of unspecified launch failure

This is a bug report from Russell Smithies that I received via email.


Hi David,
I've got your example code running on my GPU after a few attempts :-)
This server is running RHEL5 with Perl 5.8.8 so had to build newer Perl from src (5.14.1)
Built and installed run4flat-perl_nvcc-135063b and run4flat-perl-CUDA-Minimal-1c65f6e (no git or external access on this server)
I had a few errors on the test but it installed OK:

[root@hpgpuleft run4flat-perl-CUDA-Minimal-1c65f6e]# ./Build test
t/00_load.t ............... ok
t/Index-Manipulation.t .... ok
t/Memory.t ................ ok
t/Transfer.t .............. ok
t/z_PDL.t ................. ok
t/z_kernel_invocations.t .. 1/28 # Gold gave 524800 and CUDA gave 524800
# Gold gave 524800 and CUDA gave 524800
# Gold gave 0.398780822753906 and CUDA gave 0.398714065551758
# Gold gave 0.398780822753906 and CUDA gave 0.398714065551758
# Gold gave 0.398780822753906 and CUDA gave 0.398709535598755

#   Failed test 'PeekAtLastError correctly returns an unspecified launch failure'
#   at t/z_kernel_invocations.t line 71.
#                   'invalid configuration argument'
#     doesn't match '(?^:unspecified)'

#   Failed test 'The failing kernel gives an unspecified launch failure'
#   at t/z_kernel_invocations.t line 77.
#                   'invalid configuration argument'
#     doesn't match '(?^:unspecified)'

#   Failed test 'Good kernels invoked after a failed kernel launch also fail'
#   at t/z_kernel_invocations.t line 84.

#   Failed test 'Further kernel invocations return an unspecified launch failure'
#   at t/z_kernel_invocations.t line 88.
#                   'no error'
#     doesn't match '(?^:unspecified)'

#   Failed test 'Device resets invalidate previously allocated memory'
#   at t/z_kernel_invocations.t line 98.
# Looks like you failed 5 tests of 28.
t/z_kernel_invocations.t .. Dubious, test returned 5 (wstat 1280, 0x500)
Failed 5/28 subtests

Test Summary Report
-------------------
t/z_kernel_invocations.t (Wstat: 1280 Tests: 28 Failed: 5)
 Failed tests:  21, 23, 25-26, 28
 Non-zero exit status: 5
Files=6, Tests=81,  5 wallclock secs ( 0.03 usr  0.02 sys +  0.29 cusr  4.06 csys =  4.40 CPU)
Result: FAIL
Failed 1/6 test programs. 5/81 subtests failed.

Error: no compiler detected to compile 'lib/CUDA/Minimal.c'. Aborting

Hi, I am trying to get perl-CUDA-Minimal up and running. I have CUDA working and can compile all the samples from NVIDIA

I had no problem compiling ExtUtils:nvcc (after I figured out the added path's)

Now I am stuck on "./Build" in this module as it says "Error: no compiler detected to compile 'lib/CUDA/Minimal.c'. Aborting.

The message is no help and I can't find where it is failing in Build so I can try to figure out what it is looking for.

Some idea's would be appreciated.

OH, I am on Fedora 19 if it helps

Cannot build

Hey David ... no dice. Looking into it now

Building CUDA-Minimal
/home/kthakore/.perl5/perls/perl-5.12.2/bin/perl5.12.2 -MExtUtils::nvcc::Backend -eExtUtils::nvcc::Backend::compiler -- -I. -I/home/kthakore/.perl5/perls/perl-5.12.2/lib/5.12.2/x86_64-linux-thread-multi/CORE -DXS_VERSION="0.01" -DVERSION="0.01" -fPIC -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include -O2 -o lib/CUDA/Minimal.o lib/CUDA/Minimal.c
lib/CUDA/Minimal.xs(152): error: identifier "cudaDeviceReset" is undefined

1 error detected in the compilation of "/tmp/tmpxft_00000f4a_00000000-4_Minimal.cpp1.ii".
nvcc encountered a problem
error building lib/CUDA/Minimal.o from 'lib/CUDA/Minimal.c' at /home/kthakore/.perl5/perls/perl-5.12.2/lib/5.12.2/ExtUtils/CBuilder/Base.pm line 112.

"unrecognised emulation mode: arch=native" when running 'perl Build.PL'

When running 'perl Build.PL' I got the following errors:

/usr/lib/gcc/x86_64-pc-linux-gnu/4.4.5/../../../../x86_64-pc-linux-gnu/bin/ld: unrecognised emulation mode: arch=native
Supported emulations: elf_x86_64 elf_i386 i386linux elf_l1om
collect2: ld returned 1 exit status
nvcc encountered a problem

Is there any way to work around this issue? Running with

config => {ExtUtils::nvcc::MB('verbose')},

I get the folowing output

Making verbose
ExtUtils::nvcc found nvcc args [[-I/usr/lib64/perl5/5.12.3/x86_64-linux/CORE]], [[-c]], [[-D_LARGEFILE_SOURCE]], [[-D_FILE_OFFSET_BITS=64]], [[-O2]], [[-o]], [[compilet-yvJH2.o]]
ExtUtils::nvcc found other args [[-fPIC]], [[-fno-strict-aliasing]], [[-pipe]], [[-pipe]], [[-march=native]]
ExtUtils::nvcc found source files [[compilet-yvJH2.c]]
Running nvcc with args [[-Xcompiler=-fPIC,-fno-strict-aliasing,-pipe,-pipe,-march=native]], [[-I/usr/lib64/perl5/5.12.3/x86_64-linux/CORE]], [[-c]], [[-D_LARGEFILE_SOURCE]], [[-D_FILE_OFFSET_BITS=64]], [[-O2]], [[-o]], [[compilet-yvJH2.o]], [[--x=cu]], [[compilet-yvJH2.c]]
Making verbose
ExtUtils::nvcc found nvcc args [[-shared]], [[-O2]], [[-o]], [[compilet-yvJH2.so]]
ExtUtils::nvcc found other args [[-pipe]], [[-march=native]], [[-Wl,-O1]], [[-Wl,--as-needed]]
ExtUtils::nvcc found source files [[compilet-yvJH2.o]]
Running nvcc with args [[-Xlinker=-pipe,-march=native,-Wl,-O1,-Wl,--as-needed]], [[-shared]], [[-O2]], [[-o]], [[compilet-yvJH2.so]], [[compilet-yvJH2.o]]
/usr/lib/gcc/x86_64-pc-linux-gnu/4.4.5/../../../../x86_64-pc-linux-gnu/bin/ld: unrecognised emulation mode: arch=native
Supported emulations: elf_x86_64 elf_i386 i386linux elf_l1om
collect2: ld returned 1 exit status
nvcc encountered a problem

build error: linkage specification is incompatible with previous "Perl___notused"

~/hack/CUDA-Minimal$ perl Build.PL
Created MYMETA.yml and MYMETA.json
Creating new 'Build' script for 'CUDA-Minimal' version '0.01'

~/hack/CUDA-Minimal$ ./Build
Building CUDA-Minimal
/home/daxim/local/share/perlbrew/perls/gcc46/bin/perl -MExtUtils::nvcc::Backend -eExtUtils::nvcc::Backend::compiler -- -I. -I/home/daxim/local/share/perlbrew/perls/gcc46/lib/5.16.2/x86_64-linux-thread-multi-ld/CORE -DXS_VERSION="0.01" -DVERSION="0.01" -fPIC -c -D_REENTRANT -D_GNU_SOURCE -fPIC -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -o lib/CUDA/Minimal.o lib/CUDA/Minimal.c
lib/CUDA/Minimal.c(374): error: linkage specification is incompatible with previous "Perl___notused"
(163): here

1 error detected in the compilation of "/tmp/tmpxft_00004081_00000000-6_Minimal.cpp1.ii".
nvcc encountered a problem
error building lib/CUDA/Minimal.o from 'lib/CUDA/Minimal.c' at /home/daxim/local/share/perlbrew/perls/gcc46/lib/5.16.2/ExtUtils/CBuilder/Base.pm line 177.

~/hack/CUDA-Minimal$ /home/daxim/local/share/perlbrew/perls/gcc46/bin/perl -MExtUtils::nvcc::Backend -eExtUtils::nvcc::Backend::compiler -- -v -I. -I/home/daxim/local/share/perlbrew/perls/gcc46/lib/5.16.2/x86_64-linux-thread-multi-ld/CORE -DXS_VERSION="0.01" -DVERSION="0.01" -fPIC -c -D_REENTRANT -D_GNU_SOURCE -fPIC -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -o lib/CUDA/Minimal.o lib/CUDA/Minimal.c
ExtUtils::nvcc found nvcc args [[-v]], [[-I.]], [[-I/home/daxim/local/share/perlbrew/perls/gcc46/lib/5.16.2/x86_64-linux-thread-multi-ld/CORE]], [[-DXS_VERSION=0.01]], [[-DVERSION=0.01]], [[-c]], [[-D_REENTRANT]], [[-D_GNU_SOURCE]], [[-DDEBUGGING]], [[-I/usr/local/include]], [[-D_LARGEFILE_SOURCE]], [[-D_FILE_OFFSET_BITS=64]], [[-O2]], [[-g]], [[-o]], [[lib/CUDA/Minimal.o]]
ExtUtils::nvcc found other args [[-fPIC]], [[-fPIC]], [[-fno-strict-aliasing]], [[-pipe]], [[-fstack-protector]]
ExtUtils::nvcc found source files [[lib/CUDA/Minimal.c]]
Running nvcc with args [[-Xcompiler=-fPIC,-fPIC,-fno-strict-aliasing,-pipe,-fstack-protector]], [[-v]], [[-I.]], [[-I/home/daxim/local/share/perlbrew/perls/gcc46/lib/5.16.2/x86_64-linux-thread-multi-ld/CORE]], [[-DXS_VERSION=0.01]], [[-DVERSION=0.01]], [[-c]], [[-D_REENTRANT]], [[-D_GNU_SOURCE]], [[-DDEBUGGING]], [[-I/usr/local/include]], [[-D_LARGEFILE_SOURCE]], [[-D_FILE_OFFSET_BITS=64]], [[-O2]], [[-g]], [[-o]], [[lib/CUDA/Minimal.o]], [[--x=cu]], [[lib/CUDA/Minimal.c]], [[--compiler-bindir=gcc-4.6]]
#$ _SPACE_=
#$ _CUDART_=cudart
#$ _HERE_=/usr/local/cuda/bin
#$ _THERE_=/usr/local/cuda/bin
#$ _TARGET_SIZE_=64
#$ TOP=/usr/local/cuda/bin/..
#$ LD_LIBRARY_PATH=/usr/local/cuda/bin/../lib:/usr/local/cuda/lib64:/usr/local/cuda/lib:
#$ PATH=/usr/local/cuda/bin/../open64/bin:/usr/local/cuda/bin/../nvvm:/usr/local/cuda/bin:/home/daxim/local/share/perlbrew/bin:/home/daxim/local/share/perlbrew/perls/gcc46/bin:/home/daxim/local/bin:/usr/local/cuda/bin:/opt/kde3/sbin:/sbin:/usr/sbin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/usr/sbin:/usr/sbin
#$ INCLUDES="-I/usr/local/cuda/bin/../include"
#$ LIBRARIES=  "-L/usr/local/cuda/bin/../lib64" -lcudart
#$ CUDAFE_FLAGS=
#$ OPENCC_FLAGS=
#$ PTXAS_FLAGS=
#$ gcc-4.6 -D__CUDA_ARCH__=100 -E -x c++    -DCUDA_FLOAT_MATH_FUNCTIONS -DCUDA_NO_SM_11_ATOMIC_INTRINSICS -DCUDA_NO_SM_12_ATOMIC_INTRINSICS -DCUDA_NO_SM_13_DOUBLE_INTRINSICS  -D__CUDACC__ -D__NVCC__  -fPIC -fPIC -fno-strict-aliasing -pipe -fstack-protector -O2 -I"." -I"/home/daxim/local/share/perlbrew/perls/gcc46/lib/5.16.2/x86_64-linux-thread-multi-ld/CORE" -I"/usr/local/include" "-I/usr/local/cuda/bin/../include"   -D"XS_VERSION=0.01" -D"VERSION=0.01" -D"_REENTRANT" -D"_GNU_SOURCE" -D"DEBUGGING" -D"_LARGEFILE_SOURCE" -D"_FILE_OFFSET_BITS=64" -include "cuda_runtime.h" -m64 -g -o "/tmp/tmpxft_0000408a_00000000-6_Minimal.cpp1.ii" "lib/CUDA/Minimal.c"
#$ cudafe --m64 --gnu_version=40603 -tused --no_remove_unneeded_entities  --gen_c_file_name "/tmp/tmpxft_0000408a_00000000-3_Minimal.cudafe1.c" --stub_file_name "/tmp/tmpxft_0000408a_00000000-3_Minimal.cudafe1.stub.c" --gen_device_file_name "/tmp/tmpxft_0000408a_00000000-3_Minimal.cudafe1.gpu" --nv_arch "compute_10" --gen_module_id_file --module_id_file_name "/tmp/tmpxft_0000408a_00000000-2_Minimal.module_id" --include_file_name "tmpxft_0000408a_00000000-1_Minimal.fatbin.c" "/tmp/tmpxft_0000408a_00000000-6_Minimal.cpp1.ii"
lib/CUDA/Minimal.c(374): error: linkage specification is incompatible with previous "Perl___notused"
(163): here

lib/CUDA/Minimal.c(386): error: expected a ")"

2 errors detected in the compilation of "/tmp/tmpxft_0000408a_00000000-6_Minimal.cpp1.ii".
# --error 0x2 --
nvcc encountered a problem

~/hack/CUDA-Minimal$ git log --format=raw | head -n 1
commit 991419acb95d17320f6fdaf203dc7afcbd85ed08

~/hack/CUDA-Minimal$ uname -a
Linux champion 3.4.28-2.20-desktop #1 SMP PREEMPT Tue Jan 29 16:51:37 UTC 2013 (143156b) x86_64 x86_64 x86_64 GNU/Linux

~/hack/CUDA-Minimal$ perl -V
Summary of my perl5 (revision 5 version 16 subversion 2) configuration:

Platform:
    osname=linux, osvers=3.4.28-2.20-desktop, archname=x86_64-linux-thread-multi-ld
    uname='linux champion 3.4.28-2.20-desktop #1 smp preempt tue jan 29 16:51:37 utc 2013 (143156b) x86_64 x86_64 x86_64 gnulinux '
    config_args='-de -Dprefix=/home/daxim/local/share/perlbrew/perls/gcc46 -Dcc=gcc-4.6 -DDEBUGGING -Dusemorebits -Dusethreads [email protected] [email protected] -Accflags=-fPIC -Aeval:scriptdir=/home/daxim/local/share/perlbrew/perls/gcc46/bin'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=define
    usemymalloc=n, bincompat5005=undef
Compiler:
    cc='gcc-4.6', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fPIC -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2 -g',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -fPIC -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion='', gccversion='4.6.3 20120531 [gcc-4_6-branch revision 188067]', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='long double', nvsize=16, Off_t='off_t', lseeksize=8
    alignbytes=16, prototype=define
Linker and Libraries:
    ld='gcc-4.6', ldflags =' -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib /lib/../lib64 /usr/lib/../lib64 /lib /usr/lib /lib64 /usr/lib64 /usr/local/lib64
    libs=-lnsl -lndbm -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc -lgdbm_compat
    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
    libc=/lib/libc-2.16.so, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version='2.16'
Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector'


Characteristics of this binary (from libperl):
Compile-time options: DEBUGGING HAS_TIMES MULTIPLICITY PERLIO_LAYERS
                        PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT
                        PERL_MALLOC_WRAP PERL_PRESERVE_IVUV
                        PERL_TRACK_MEMPOOL USE_64_BIT_ALL USE_64_BIT_INT
                        USE_ITHREADS USE_LARGE_FILES USE_LOCALE
                        USE_LOCALE_COLLATE USE_LOCALE_CTYPE
                        USE_LOCALE_NUMERIC USE_LONG_DOUBLE USE_PERLIO
                        USE_PERL_ATOF USE_REENTRANT_API
Built under linux
Compiled at Feb 17 2013 18:15:44
%ENV:
    PERLBREW_BASHRC_VERSION="0.58"
    PERLBREW_HOME="/home/daxim/.perlbrew"
    PERLBREW_MANPATH="/home/daxim/local/share/perlbrew/perls/gcc46/man"
    PERLBREW_PATH="/home/daxim/local/share/perlbrew/bin:/home/daxim/local/share/perlbrew/perls/gcc46/bin"
    PERLBREW_PERL="gcc46"
    PERLBREW_ROOT="/home/daxim/local/share/perlbrew"
    PERLBREW_VERSION="0.58"
@INC:
    /home/daxim/local/share/perlbrew/perls/gcc46/lib/site_perl/5.16.2/x86_64-linux-thread-multi-ld
    /home/daxim/local/share/perlbrew/perls/gcc46/lib/site_perl/5.16.2
    /home/daxim/local/share/perlbrew/perls/gcc46/lib/5.16.2/x86_64-linux-thread-multi-ld
    /home/daxim/local/share/perlbrew/perls/gcc46/lib/5.16.2
    .

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.