Commit 9867d3be authored by Mccaskey, Alex's avatar Mccaskey, Alex
Browse files

Fixing bug that broke build - started FireTensorAccelerator

parent 935b2d1f
......@@ -28,6 +28,6 @@
# Initial API and implementation - Alex McCaskey
#
#**********************************************************************************/
include_directories(${CMAKE_SOURCE_DIR}/quantum/gate)
include_directories(${CMAKE_SOURCE_DIR}/quantum/gate/accelerators)
add_executable(teleport_scaffold teleport_scaffold.cpp)
target_link_libraries(teleport_scaffold xacc-scaffold ${Boost_LIBRARIES})
\ No newline at end of file
......@@ -34,7 +34,4 @@ add_subdirectory(compilers)
add_subdirectory(accelerators)
add_subdirectory(utils)
# Gather tests
file (GLOB test_files tests/*.cpp)
add_tests("${test_files}" "${CMAKE_CURRENT_SOURCE_DIR}/utils;${CMAKE_CURRENT_SOURCE_DIR}" "${Boost_LIBRARIES}")
......@@ -28,11 +28,10 @@
# Initial API and implementation - Alex McCaskey
#
#**********************************************************************************/
#add_subdirectory(compilers)
#add_subdirectory(accelerators)
#add_subdirectory(utils)
include_directories(${CMAKE_SOURCE_DIR}/tpls/common/tpls/fire/tensor)
# Gather tests
#file (GLOB test_files tests/*.cpp)
#add_tests("${test_files}" "${CMAKE_CURRENT_SOURCE_DIR}/utils;${CMAKE_CURRENT_SOURCE_DIR}" "${Boost_LIBRARIES}")
file (GLOB test_files tests/*.cpp)
add_tests("${test_files}" "${CMAKE_CURRENT_SOURCE_DIR};${CMAKE_SOURCE_DIR}/tpls/common/tpls/fire/tensors;${CMAKE_SOURCE_DIR}/tpls/common/tpls/fire/tensors/impl;${CMAKE_SOURCE_DIR}/tpls/common/tpls/fire/tpls/eigen" "${Boost_LIBRARIES}")
/***********************************************************************************
* Copyright (c) 2016, UT-Battelle
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the xacc nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* Contributors:
* Initial API and implementation - Alex McCaskey
*
**********************************************************************************/
#ifndef QUANTUM_GATE_ACCELERATORS_FIRETENSORACCELERATOR_HPP_
#define QUANTUM_GATE_ACCELERATORS_FIRETENSORACCELERATOR_HPP_
#include "Accelerator.hpp"
#include "Tensor.hpp"
#include "Graph.hpp"
#include "QasmToGraph.hpp"
#include "GraphIR.hpp"
namespace xacc {
namespace quantum {
/**
*
*/
class FireTensorAccelerator : public Accelerator {
public:
virtual AcceleratorType getType() {
return AcceleratorType::qpu_gate;
}
virtual std::vector<xacc::IRTransformation> getIRTransformations() {
std::vector<xacc::IRTransformation> v;
return v;
}
virtual void execute(const std::shared_ptr<xacc::IR> ir) {
using GraphType = qci::common::Graph<CircuitNode>;
// Cast to a GraphIR, if we can...
auto graphir = std::dynamic_pointer_cast<xacc::GraphIR<GraphType>>(ir);
if (!graphir) {
QCIError("Invalid IR - this Accelerator on accepts GraphIR<Graph<CircuitNode>>.");
}
}
virtual ~FireTensorAccelerator() {
}
protected:
bool canAllocate(const int N) {
return true;
}
};
}
}
#endif /* QUANTUM_GATE_ACCELERATORS_FIRETENSORACCELERATOR_HPP_ */
/***********************************************************************************
* Copyright (c) 2016, UT-Battelle
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the xacc nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* Contributors:
* Initial API and implementation - Alex McCaskey
*
**********************************************************************************/
#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MODULE FireTensorAcceleratorTester
#include <boost/test/included/unit_test.hpp>
#include "FireTensorAccelerator.hpp"
BOOST_AUTO_TEST_CASE(checkConstruction) {
}
......@@ -33,5 +33,9 @@ set (PACKAGE_DESCIPTION "Quantum XACC Common Utilities")
file (GLOB HEADERS *.hpp)
# Gather tests
file (GLOB test_files tests/*.cpp)
add_tests("${test_files}" "${CMAKE_CURRENT_SOURCE_DIR}" "${Boost_LIBRARIES}")
install(FILES ${HEADERS} DESTINATION include)
......@@ -57,21 +57,22 @@ public:
* Reference to the number of bits
*/
static constexpr int N = Number;
private:
/**
* The bits themselves
*/
std::bitset<(size_t)Number> bits;
/**
* Return the current state of the bits
* @return
*/
std::bitset<(size_t)Number> toBits() {
std::bitset<(size_t) Number> toBits() {
return bits;
}
private:
/**
* The bits themselves
*/
std::bitset<(size_t)Number> bits;
};
/**
......@@ -87,7 +88,7 @@ private:
* instances that transform XACC IR to be amenable to execution
* on the hardware.
*/
class Accelerator {
class Accelerator : public qci::common::QCIObject {
public:
......
......@@ -150,8 +150,7 @@ public:
xaccIR->persist(ostr);
}
// Execute IR Translations and Optimizations
// FIXME GET LIST OF TRANSFORMATION FROM
// Execute IR Translations
auto acceleratorType = accelerator->getType();
auto defaultTransforms = getAcceleratorIndependentTransformations(acceleratorType);
auto accDepTransforms = accelerator->getIRTransformations();
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment