Comments (10)
See also the russian troll's input on closed/duplicate #16
from ecto.
My comment was somewhat misunderstood. I think the issue "make python dependency optional" is obvious to desire, my point goes somewhat deeper- python is just one incarnation of things that get in the way of porting a useful c & c++ core to hardware.
from ecto.
Okay, point well taken. But you don't actually propose to e.g. generate VHDL for a graph containing a module that takes something of type boost::shared_ptr<std::map<std::string, variant<int, float, double> > >
?
from ecto.
um, well stuff like shared pointers and even more so boost::variant are a huge pain to try to map to hardware. It makes it really hard to statically discern what memory and clock cycles you actually need. Generating VHDL might be provably impossible, because the main (huge) difference there is explicit timing, you can't have a multi-type object where it might take X or Y operations to free it.
I think consciously saying "Ecto is NOT meant for prototyping for mapping to hardware" is acceptable too btw, I just think its a missed opportunity because slightly less trickiness with the types and scriptable wrappers would allow easy hardware mapping.
from ecto.
Mapping to hardware is way out of scope for ecto.
Anything VHDL or what not is either very device specific or so different from C++ constructs that it would be too constraining for modules not intended for an FPGA.
Also, we're focused currently on single process, synchronous graphs, with the same memory address space. What does it mean to translate this to an FPGA?
from ecto.
Compilers exist that will automatically parallelize "raw ansi C and simple
C++" for statically timed code.
It would be cool if a module that wanted to do this could be tested with
Ecto. As opposed to there being so much overhead that one have to start from
scratch rather than remove the wrapping once prototyping was finished.
I am thinking of something like nlopt; part of the reason why I hesitate to
touch the details is that imposing structure from ecto or nlmagick reduces
low-level reusability.
If I can run nlmagick or routines from "numerical recipes in C++" from
multiple ecto modules connected together, my concern is addressed ;-)
On Jun 7, 2011 9:34 PM, "ethanrublee" <
[email protected]>
wrote:
Mapping to hardware is way out of scope for ecto.
Anything VHDL or what not is either very device specific or so different
from C++ constructs that it would be too constraining for modules not
intended for an FPGA.Also, we're focused currently on single process, synchronous graphs, with
the same memory address space. What does it mean to translate this to an
FPGA?Reply to this email directly or view it on GitHub:
#10 (comment)
from ecto.
But, when have you ever gone from a PC app, to an FPGA and not rewritten at least most of the code?
from ecto.
Boggles my mind. Costs a shit ton, but its quite magical ...
http://en.wikipedia.org/wiki/Catapult_C
http://www.lisha.ufsc.br/teaching/esl/exercise/catapult_docs/catapult_cpp_hw_gd_uv.pdf
http://users.ece.utexas.edu/~gerstl/ee382v-ics_f09/lectures/lecture_14.pdf
On Tue, Jun 7, 2011 at 10:27 PM, ethanrublee
[email protected]
wrote:
But, when have you ever gone from a PC app, to an FPGA and not rewritten at least most of the code?
Reply to this email directly or view it on GitHub:
#10 (comment)
from ecto.
The target audience for ecto is vision/perception researchers. Elegance of interface and scriptability very clearly take priority over the theoretical future ability to cross-compile to VHDL or Verilog. Even assuming that we could in fact purchase or write something like "Catapult C", there is absolutely NO chance that we will follow the "recommendations on how to write C++ code" in the "Catapult C Synthesis C++ to Hardware Concepts" document. This is completely out of the question.
from ecto.
Moving beyond VHDL generation from ecto...
It will be valuable to serialize some description of a graph made in python and reconstruct the graph in a c++ program.
The two use cases are, just run a predetermined graph, or use the graph in some custom main program.
from ecto.
Related Issues (20)
- Asynchronous processing w/ different loop speeds HOT 1
- Stats collection : add cpu time column
- ecto_openni fails to build against ecto on ARM HOT 7
- segmentation fault in version 0.6.8 HOT 12
- Google group return address (plasmodic.org) is invalid
- Couldn't compile boost version checking program HOT 4
- Unable to build on OS X Yosemite 10.10 (Error building plasm_loader) HOT 2
- Problem with linking in ecto_tutorial: cannot open output file //ecto_tutorial/tutorial.so HOT 3
- Some of the provided tests fail in the current HEAD version. HOT 4
- ImportError: No module named ecto_main HOT 14
- installation cmake error HOT 4
- Hidden index page
- Boost 1.62 compile time error in tests HOT 2
- test error HOT 1
- rosdep xdot key will be renamed
- test error :1 - _ctest_ecto_gtest_ecto-test (Failed) HOT 1
- got undefined symbol after build
- ecto error HOT 1
- Future support or development HOT 1
- catkin_make have error about boost1.74 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ecto.