[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