[Trilinos-Users] link errors when compiling

Eric Marttila eric.marttila at thermoanalytics.com
Tue Dec 11 15:32:00 MST 2012


Dear All,

My colleagues and I are interested in using the GPU support in trilinos, but 
when compiling some of the hybrid-platform examples we get links errors about 

'undefined reference to `void Kokkos::ThrustGPUNode::parallel_for ...'

We believe we are linking with all of the appropriate Kokkos libraries, but 
obviously we are missing something.   We would appreciate any suggestions 
anyone can provide to help resolve this.

The example we're using is derived from 
http://code.google.com/p/trilinos/wiki/TpetraHybridPlatform

I've attached the code we're using, the Makefile, and the full list of link 
errors in case that would help determine the problem.

Thank you.
--Eric


-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://software.sandia.gov/pipermail/trilinos-users/attachments/20121211/d6e0dc88/attachment.html 
-------------- next part --------------
#include <Teuchos_GlobalMPISession.hpp>
#include <Teuchos_XMLParameterListReader.hpp>
#include <Teuchos_XMLParameterListHelpers.hpp>
#include <Teuchos_DefaultMpiComm.hpp>

#include <Tpetra_ConfigDefs.hpp>
#include <Tpetra_HybridPlatform.hpp>
#include <Tpetra_Map.hpp>
#include <Tpetra_Vector.hpp>

template <class Node, class Scalar, class Ordinal>
void some_method(const Teuchos::RCP<const Teuchos::Comm<int> > &comm, const Teuchos::RCP<Node> &node)
{
  typedef Tpetra::Map<Ordinal,Ordinal,Node>           Map;
  typedef Tpetra::Vector<Scalar,Ordinal,Ordinal,Node> Vector;
  using Teuchos::RCP;
  const Tpetra::global_size_t INVALID = Teuchos::OrdinalTraits<Tpetra::global_size_t>::invalid();
  const Scalar ZERO = Teuchos::ScalarTraits<Scalar>::zero();
  // create a Map
  const size_t numLocal   = 1000;
  RCP<const Map> map = Tpetra::createContigMapWithNode<Ordinal,Ordinal>(INVALID,numLocal,comm,node);
  RCP<Vector>    vec = Tpetra::createVector<Scalar>(map);
  // randomize the vector
  vec->randomize();
  // get the norm
  Scalar nrm2 = vec->norm2();
  if (comm->getRank() == 0) std::cout << "Norm of rand vector: " << nrm2 << std::endl;
  // zero the vector
  vec->putScalar(ZERO);
  // take norms; they should be zero
  nrm2 = vec->norm2();
  if (comm->getRank() == 0) std::cout << "Norm of zero vector: " << nrm2 << std::endl;
}

template <class Node>
class runTest {
  public:
  static void run(Teuchos::ParameterList &myMachPL, const Teuchos::RCP<const Teuchos::Comm<int> > &comm, const Teuchos::RCP<Node> &node) 
  {
    std::cout << "Running test with Node==" << Teuchos::typeName(*node) << " on rank " << comm->getRank() << "/" << comm->getSize() << std::endl;
    some_method<Node,double,int>(comm,node);
  }
};

int main(int argc, char **argv) {
  Teuchos::GlobalMPISession mpisess(&argc,&argv,&std::cout);
  Teuchos::RCP<const Teuchos::Comm<int> > comm = Teuchos::createMpiComm<int>(Teuchos::opaqueWrapper<MPI_Comm>(MPI_COMM_WORLD));

  // 
  // read machine file and initialize platform
  // 
  std::string machine_list(
    "<ParameterList>                                                               "
    "  <ParameterList name='%1=0'>                                                 "
    "    <Parameter name='NodeType' type='string' value='Kokkos::SerialNode'/>     "
    "  </ParameterList>                                                            "
    "    <Parameter name='NodeType' type='string' value='Kokkos::ThrustGPUNode'/>  "
    "    <Parameter name='Verbose' type='int' value='0'/>                          "
    "    <Parameter name='Device Number' type='int' value='0'/>                    "
    "  </ParameterList>                                                            "
    "</ParameterList>                                                              "
  );
  Teuchos::ParameterList machPL;
  Teuchos::updateParametersFromXmlString(machine_list, inOutArg(machPL));
  Tpetra::HybridPlatform platform(comm,machPL);
  platform.runUserCode<runTest>();

  if (comm->getRank() == 0) std::cout << "End Result: TEST PASSED" << std::endl;
  return 0;
}
-------------- next part --------------
#############################################################################
# Makefile for building: bin/hybrid-platform
# Generated by qmake (2.01a) (Qt 4.5.3) on: Tue Dec 11 16:41:36 2012
# Project:  hybrid-platform.pro
# Template: app
#############################################################################

####### Compiler, tools and options

CC            = gcc
CXX           = g++
DEFINES       = 
CFLAGS        = -m64 -pipe -O2 -Wall -W $(DEFINES)
CXXFLAGS      = -m64 -pipe -Wno-unused-parameter -O2 -Wall -W $(DEFINES)
INCPATH       = -I/home/build/work/thirdparty/qt/v4.5.3/mkspecs/linux-g++-64 -I. -I. -I/usr/local/cuda-5.0/include -I/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include -I/home/build/work/thirdparty/mpich2/v1.2.1p1/x86_64/include
LINK          = g++
LFLAGS        = -m64 -Wl,-O1
LIBS          = $(SUBLIBS)   -L/usr/local/cuda-5.0/lib64 -lcublas_device -lcublas -lcudadevrt -lcudart -lcufft -lcuinj64 -lcurand -lcusparse -lnpp -l nvToolsExt -L/usr/local/thirdparty/trilinos/v10.10.2-gpu/lib -laztecoo -lbelos -lbelosepetra -lbelostpetra -lml -lamesos -lifpack -lifpack2 -lepetra -lepetraext -lgaleri -lisorropia -lkokkos -lkokkoslinalg -lkokkoslinalg_cuda -lkokkosnodeapi -lteuchos -ltpetra -ltpetraext -ltpetrainout -ltpi -ltriutils -lzoltan -L/usr/local/thirdparty/lapack/v3.4.1/lib -llapack -lblas -lgfortran -L/usr/local/thirdparty/mpich2/v1.2.1p1/x86_64/lib -lmpich -lopa
AR            = ar cqs
RANLIB        = 
QMAKE         = /usr/local/thirdparty/qt/v4.5.3/bin/qmake
TAR           = tar -cf
COMPRESS      = gzip -9f
COPY          = cp -f
SED           = sed
COPY_FILE     = $(COPY)
COPY_DIR      = $(COPY) -r
INSTALL_FILE  = install -m 644 -p
INSTALL_DIR   = $(COPY_DIR)
INSTALL_PROGRAM = install -m 755 -p
DEL_FILE      = rm -f
SYMLINK       = ln -sf
DEL_DIR       = rmdir
MOVE          = mv -f
CHK_DIR_EXISTS= test -d
MKDIR         = mkdir -p

####### Output directory

OBJECTS_DIR   = release/

####### Files

SOURCES       = hybrid-platform.cpp 
OBJECTS       = release/hybrid-platform.o
DIST          = /home/build/work/thirdparty/qt/v4.5.3/mkspecs/common/g++.conf \
		/home/build/work/thirdparty/qt/v4.5.3/mkspecs/common/unix.conf \
		/home/build/work/thirdparty/qt/v4.5.3/mkspecs/common/linux.conf \
		/home/build/work/thirdparty/qt/v4.5.3/mkspecs/features/qt_functions.prf \
		/home/build/work/thirdparty/qt/v4.5.3/mkspecs/features/qt_config.prf \
		/home/build/work/thirdparty/qt/v4.5.3/mkspecs/features/exclusive_builds.prf \
		/home/build/work/thirdparty/qt/v4.5.3/mkspecs/features/default_pre.prf \
		/home/jdt/work/thermoregulation-gpu/tmtools/arch.pri \
		/home/jdt/work/thermoregulation-gpu/tmtools/thirdparty.pri \
		/home/jdt/work/thermoregulation-gpu/tmtools/mpi.pri \
		/home/jdt/work/thermoregulation-gpu/tmtools/trilinos.pri \
		/home/jdt/work/thermoregulation-gpu/tmtools/cuda.pri \
		/home/build/work/thirdparty/qt/v4.5.3/mkspecs/features/release.prf \
		/home/build/work/thirdparty/qt/v4.5.3/mkspecs/features/debug_and_release.prf \
		/home/build/work/thirdparty/qt/v4.5.3/mkspecs/features/default_post.prf \
		/home/build/work/thirdparty/qt/v4.5.3/mkspecs/features/build_pass.prf \
		/home/build/work/thirdparty/qt/v4.5.3/mkspecs/features/warn_on.prf \
		/home/build/work/thirdparty/qt/v4.5.3/mkspecs/features/resources.prf \
		/home/build/work/thirdparty/qt/v4.5.3/mkspecs/features/uic.prf \
		/home/build/work/thirdparty/qt/v4.5.3/mkspecs/features/yacc.prf \
		/home/build/work/thirdparty/qt/v4.5.3/mkspecs/features/lex.prf \
		/home/build/work/thirdparty/qt/v4.5.3/mkspecs/features/include_source_dir.prf \
		hybrid-platform.pro
QMAKE_TARGET  = hybrid-platform
DESTDIR       = bin/
TARGET        = bin/hybrid-platform

first: all
####### Implicit rules

.SUFFIXES: .o .c .cpp .cc .cxx .C

.cpp.o:
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"

.cc.o:
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"

.cxx.o:
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"

.C.o:
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"

.c.o:
	$(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"

####### Build rules

all: Makefile.Release $(TARGET)

$(TARGET):  $(OBJECTS)  
	@$(CHK_DIR_EXISTS) bin/ || $(MKDIR) bin/ 
	$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)

qmake:  FORCE
	@$(QMAKE) -unix -o Makefile.Release hybrid-platform.pro

dist: 
	@$(CHK_DIR_EXISTS) release/hybrid-platform1.0.0 || $(MKDIR) release/hybrid-platform1.0.0 
	$(COPY_FILE) --parents $(SOURCES) $(DIST) release/hybrid-platform1.0.0/ && (cd `dirname release/hybrid-platform1.0.0` && $(TAR) hybrid-platform1.0.0.tar hybrid-platform1.0.0 && $(COMPRESS) hybrid-platform1.0.0.tar) && $(MOVE) `dirname release/hybrid-platform1.0.0`/hybrid-platform1.0.0.tar.gz . && $(DEL_FILE) -r release/hybrid-platform1.0.0


clean:compiler_clean 
	-$(DEL_FILE) $(OBJECTS)
	-$(DEL_FILE) *~ core *.core


####### Sub-libraries

distclean: clean
	-$(DEL_FILE) $(TARGET) 
	-$(DEL_FILE) Makefile.Release


cuclean: compiler_cu_clean

compiler_cu_make_all:
compiler_cu_clean:
compiler_rcc_make_all:
compiler_rcc_clean:
compiler_uic_make_all:
compiler_uic_clean:
compiler_image_collection_make_all: qmake_image_collection.cpp
compiler_image_collection_clean:
	-$(DEL_FILE) qmake_image_collection.cpp
compiler_yacc_decl_make_all:
compiler_yacc_decl_clean:
compiler_yacc_impl_make_all:
compiler_yacc_impl_clean:
compiler_lex_make_all:
compiler_lex_clean:
compiler_clean: 

####### Compile

release/hybrid-platform.o: hybrid-platform.cpp /home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_GlobalMPISession.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_ConfigDefs.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_config.h \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_DLLExportMacro.h \
		/home/build/work/thirdparty/mpich2/v1.2.1p1/x86_64/include/mpi.h \
		/home/build/work/thirdparty/mpich2/v1.2.1p1/x86_64/include/mpio.h \
		/home/build/work/thirdparty/mpich2/v1.2.1p1/x86_64/include/mpicxx.h \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_XMLParameterListReader.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_ParameterList.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_ParameterListExceptions.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_ParameterEntry.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_any.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_Assert.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_TestForException.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_TypeNameTraits.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_ConstTypeTraits.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_stacktrace.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_RCP.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_RCPDecl.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_RCPNode.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_map.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_ENull.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_Exceptions.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_toString.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_getBaseObjVoidPtr.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_NullIteratorTraits.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_Ptr.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_PtrDecl.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_dyn_cast.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_ParameterEntryValidator.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_Array.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_ArrayRCP.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_ArrayRCPDecl.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_ArrayViewDecl.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_ArrayView.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_as.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_Tuple.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_Utils.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_XMLObject.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_XMLObjectImplem.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_Describable.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_VerbosityLevel.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_iostream_helpers.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_FancyOStream.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_oblackholestream.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_basic_oblackholestream.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_LabeledObject.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_DependencySheet.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_Dependency.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_InvalidDependencyException.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_ValidatorMaps.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_XMLParameterListHelpers.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_Comm.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_ReductionOp.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_DefaultMpiComm.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_CommUtilities.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_TimeMonitor.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_PerformanceMonitorBase.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_TableFormat.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_TableColumn.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_TableEntry.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_Time.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_OrdinalTraits.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_OpaqueWrapper.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_VerboseObject.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_MpiReductionOpSetter.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_SerializationTraitsHelpers.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_SerializationTraits.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_Workspace.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Tpetra_ConfigDefs.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Tpetra_config.h \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Kokkos_ConfigDefs.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Kokkos_config.h \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_ScalarTraits.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_ScalarTraitsDecl.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_CommHelpers.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_ReductionOpHelpers.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_SerializerHelpers.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_Serializer.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Tpetra_HybridPlatform.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Kokkos_SerialNode.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Kokkos_StandardNodeMemoryModel.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Kokkos_NodeAPIConfigDefs.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_TypeTraits.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Kokkos_BufferMacros.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Kokkos_NodeHelpers.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Kokkos_TPINode.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/TPI.h \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Kokkos_ThrustGPUNode.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Kokkos_CUDANodeMemoryModel.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Kokkos_CUDANodeMemoryModelImpl.hpp \
		/usr/local/cuda-5.0/include/cuda.h \
		/usr/local/cuda-5.0/include/cuda_runtime.h \
		/usr/local/cuda-5.0/include/host_config.h \
		/usr/local/cuda-5.0/include/builtin_types.h \
		/usr/local/cuda-5.0/include/device_types.h \
		/usr/local/cuda-5.0/include/host_defines.h \
		/usr/local/cuda-5.0/include/driver_types.h \
		/usr/local/cuda-5.0/include/surface_types.h \
		/usr/local/cuda-5.0/include/texture_types.h \
		/usr/local/cuda-5.0/include/vector_types.h \
		/usr/local/cuda-5.0/include/channel_descriptor.h \
		/usr/local/cuda-5.0/include/cuda_runtime_api.h \
		/usr/local/cuda-5.0/include/cuda_device_runtime_api.h \
		/usr/local/cuda-5.0/include/driver_functions.h \
		/usr/local/cuda-5.0/include/vector_functions.h \
		/usr/local/cuda-5.0/include/common_functions.h \
		/usr/local/cuda-5.0/include/math_functions.h \
		/usr/local/cuda-5.0/include/math_constants.h \
		/usr/local/cuda-5.0/include/device_functions.h \
		/usr/local/cuda-5.0/include/sm_11_atomic_functions.h \
		/usr/local/cuda-5.0/include/sm_12_atomic_functions.h \
		/usr/local/cuda-5.0/include/sm_13_double_functions.h \
		/usr/local/cuda-5.0/include/sm_20_atomic_functions.h \
		/usr/local/cuda-5.0/include/sm_35_atomic_functions.h \
		/usr/local/cuda-5.0/include/sm_20_intrinsics.h \
		/usr/local/cuda-5.0/include/sm_30_intrinsics.h \
		/usr/local/cuda-5.0/include/sm_35_intrinsics.h \
		/usr/local/cuda-5.0/include/surface_functions.h \
		/usr/local/cuda-5.0/include/cuda_surface_types.h \
		/usr/local/cuda-5.0/include/texture_fetch_functions.h \
		/usr/local/cuda-5.0/include/cuda_texture_types.h \
		/usr/local/cuda-5.0/include/texture_indirect_functions.h \
		/usr/local/cuda-5.0/include/surface_indirect_functions.h \
		/usr/local/cuda-5.0/include/crt/func_macro.h \
		/usr/local/cuda-5.0/include/math_functions_dbl_ptx1.h \
		/usr/local/cuda-5.0/include/math_functions_dbl_ptx3.h \
		/usr/local/cuda-5.0/include/device_launch_parameters.h \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Kokkos_CUDANodeUtils.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Tpetra_Map.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Tpetra_Map_decl.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Kokkos_DefaultNode.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Tpetra_Map_def.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Tpetra_Directory.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Tpetra_Directory_decl.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Tpetra_Directory_def.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Tpetra_Distributor.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Tpetra_Util.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Tpetra_Vector.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Tpetra_Vector_decl.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Tpetra_MultiVector_decl.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_DataAccess.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_BLAS_types.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_Range1D.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Kokkos_MultiVector.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Kokkos_DefaultArithmetic.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Kokkos_MultiVectorKernelOps.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_ScalarTraitsCUDA.hpp \
		/usr/local/cuda-5.0/include/cublas.h \
		/usr/local/cuda-5.0/include/cublas_api.h \
		/usr/local/cuda-5.0/include/cuComplex.h \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_BLAS.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Tpetra_DistObject.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Tpetra_Import.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Tpetra_ImportExportData.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Teuchos_Object.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Tpetra_Export.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Tpetra_Vector_def.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Kokkos_NodeTrace.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Tpetra_MultiVector.hpp \
		/home/build/work/thirdparty/trilinos/v10.10.2-gpu/include/Tpetra_MultiVector_def.hpp
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release/hybrid-platform.o hybrid-platform.cpp

####### Install

install:   FORCE

uninstall:   FORCE

FORCE:

-------------- next part --------------
g++ -m64 -Wl,-O1 -o bin/hybrid-platform release/hybrid-platform.o     -L/usr/local/cuda-5.0/lib64 -lcublas_device -lcublas -lcudadevrt -lcudart -lcufft -lcuinj64 -lcurand -lcusparse -lnpp -l nvToolsExt -L/usr/local/thirdparty/trilinos/v10.10.2-gpu/lib -laztecoo -lbelos -lbelosepetra -lbelostpetra -lml -lamesos -lifpack -lifpack2 -lepetra -lepetraext -lgaleri -lisorropia -lkokkos -lkokkoslinalg -lkokkoslinalg_cuda -lkokkosnodeapi -lteuchos -ltpetra -ltpetraext -ltpetrainout -ltpi -ltriutils -lzoltan -L/usr/local/thirdparty/lapack/v3.4.1/lib -llapack -lblas -lgfortran -L/usr/local/thirdparty/mpich2/v1.2.1p1/x86_64/lib -lmpich -lopa
release/hybrid-platform.o: In function `Kokkos::DefaultArithmetic<Kokkos::MultiVector<double, Kokkos::ThrustGPUNode> >::Init(Kokkos::MultiVector<double, Kokkos::ThrustGPUNode>&, double)':
hybrid-platform.cpp:(.text._ZN6Kokkos17DefaultArithmeticINS_11MultiVectorIdNS_13ThrustGPUNodeEEEE4InitERS3_d[Kokkos::DefaultArithmetic<Kokkos::MultiVector<double, Kokkos::ThrustGPUNode> >::Init(Kokkos::MultiVector<double, Kokkos::ThrustGPUNode>&, double)]+0x225): undefined reference to `void Kokkos::ThrustGPUNode::parallel_for<Kokkos::InitOp<double> >(int, int, Kokkos::InitOp<double>)'
hybrid-platform.cpp:(.text._ZN6Kokkos17DefaultArithmeticINS_11MultiVectorIdNS_13ThrustGPUNodeEEEE4InitERS3_d[Kokkos::DefaultArithmetic<Kokkos::MultiVector<double, Kokkos::ThrustGPUNode> >::Init(Kokkos::MultiVector<double, Kokkos::ThrustGPUNode>&, double)]+0x327): undefined reference to `void Kokkos::ThrustGPUNode::parallel_for<Kokkos::InitOp<double> >(int, int, Kokkos::InitOp<double>)'
release/hybrid-platform.o: In function `Kokkos::DefaultArithmetic<Kokkos::MultiVector<double, Kokkos::ThrustGPUNode> >::Norm2Squared(Kokkos::MultiVector<double, Kokkos::ThrustGPUNode> const&)':
hybrid-platform.cpp:(.text._ZN6Kokkos17DefaultArithmeticINS_11MultiVectorIdNS_13ThrustGPUNodeEEEE12Norm2SquaredERKS3_[Kokkos::DefaultArithmetic<Kokkos::MultiVector<double, Kokkos::ThrustGPUNode> >::Norm2Squared(Kokkos::MultiVector<double, Kokkos::ThrustGPUNode> const&)]+0x397): undefined reference to `Kokkos::DotOp1<double>::ReductionType Kokkos::ThrustGPUNode::parallel_reduce<Kokkos::DotOp1<double> >(int, int, Kokkos::DotOp1<double>)'
release/hybrid-platform.o: In function `Tpetra::MultiVector<double, int, int, Kokkos::ThrustGPUNode>::putScalar(double const&)':
hybrid-platform.cpp:(.text._ZN6Tpetra11MultiVectorIdiiN6Kokkos13ThrustGPUNodeEE9putScalarERKd[Tpetra::MultiVector<double, int, int, Kokkos::ThrustGPUNode>::putScalar(double const&)]+0x656): undefined reference to `void Kokkos::ThrustGPUNode::parallel_for<Kokkos::InitOp<double> >(int, int, Kokkos::InitOp<double>)'
hybrid-platform.cpp:(.text._ZN6Tpetra11MultiVectorIdiiN6Kokkos13ThrustGPUNodeEE9putScalarERKd[Tpetra::MultiVector<double, int, int, Kokkos::ThrustGPUNode>::putScalar(double const&)]+0x7ff): undefined reference to `void Kokkos::ThrustGPUNode::parallel_for<Kokkos::InitOp<double> >(int, int, Kokkos::InitOp<double>)'
collect2: ld returned 1 exit status
make[1]: *** [bin/hybrid-platform] Error 1


More information about the Trilinos-Users mailing list