Giter Club home page Giter Club logo

Comments (14)

nhanvtran avatar nhanvtran commented on May 19, 2024

https://github.com/vloncar/hls4ml/tree/intel

from hls4ml.

kutenai avatar kutenai commented on May 19, 2024

Has some work been done toward this goal? I'm wondering what is involved to use this on an intel/altera FPGA.

from hls4ml.

nhanvtran avatar nhanvtran commented on May 19, 2024

hi @kutenai -- there is work on-going to integrate intel/altera FPGAs into the workflow. It was a bit slow-going at first, but there is more progress recently. we don't have a fixed timeline for any release, but we could try to put out something in pre-alpha on the timescale of ~weeks/month or so

from hls4ml.

kutenai avatar kutenai commented on May 19, 2024

That is very exciting news... thanks for the work.
I'm not sure what is involved, or if there is a way I could help out or not.. but, I could theoretically do that in a month or so. Right now I'm in a crunch to implement a CNN in a Cyclone V, so using OpenCL, but this hls4ml looks very very impressive... and I daresay like a better long-term solution.

from hls4ml.

kutenai avatar kutenai commented on May 19, 2024

Are there any updates on this @nhanvtran ?

from hls4ml.

hamzajaved780 avatar hamzajaved780 commented on May 19, 2024

How far did you get with your CNN implementation? As of now, we only support Quantized Dense networks with user-defined latency/area trade off. We do plan to extend this to CNN's in the near future. Also what specific models are you interested in implementing?

from hls4ml.

kutenai avatar kutenai commented on May 19, 2024

@hamzajaved780 -- I did not get far at all. I've been trying to use OpenCL with a Cyclone V device, and HLS -- lots of buzzwords in there ;-)

But, I just found out from Intel that this is not supported. It used to be, but it never really panned out I guess, so support was dropped in Quartus 17. I've been trying to make this work in Quartus 18, and have had no luck at all.. now, I know why.

I'm coming back to look at HLS...

I have one SUPER important question that I hope someone can answer... Does hls4ml outputs some code that I could manually import into a Quartus project?

I'm find doing the legwork on that, and would even be interested in porting that back in for support if possible, but I would like to know if I'm on a "reasonable" track.

My hope is that the "Xilinx" support is more along the lines of intergartion into the IDE, generation of .tcl files, etc... but the code itself is close to portable. If so, I'll figure out the steps to get it into Quartus...

Sound possible?

from hls4ml.

hamzajaved780 avatar hamzajaved780 commented on May 19, 2024

I think you can import both the HLS and the compiled project into Quartus, the HLS compiler even generates a Quartus project file.

CNN implementation on the Xilinx side is still a work in progress, mainly limited by the size of layer/model you want to implement.

Portability wont be an issue, the HLS code is mostly shared between the two, although you'll have to do a lot of optimizations to get similar performance (mainly through pragmas and interface modification).

I'll be starting my work on implementing CNNs from next week, so it'd be nice if you have some specific model that we can target for this device and see how well it performs.

My recommendation would be to start from the new large dense implementation and then convert it into a Conv layer (using the Xilinx Conv template). If we can get something working, generalizing it would be trivial. Limiting resource usage is super critical when dealing with millions of MACs (Multiplication and Addition), so we might have to change a bit of architecture for it to work well on Intel.

from hls4ml.

kutenai avatar kutenai commented on May 19, 2024

I don't see in the "example-models" projects where it generates a quartus output file.
I ran the example hls4ml conviert -c keras-config.yml.

It ran fine, but there is no quartus output file. Note that this is on the master branch.

from hls4ml.

hamzajaved780 avatar hamzajaved780 commented on May 19, 2024

You'll have to run "make myproject-fgpa" for it to generate those files. Also, master only works with Vivado. Try this repo instead: https://github.com/hamzajaved780/hls4ml/tree/activation-update. I'll update this repo but it should give you a nice idea.

from hls4ml.

kutenai avatar kutenai commented on May 19, 2024

I noticed you did not fork your repo, that's too bad, as it does not allow comparing against the main repo (as easily), or merging to the man repo with a PR.. however, it's great the work you're doing!!!!

from hls4ml.

hamzajaved780 avatar hamzajaved780 commented on May 19, 2024

The main repo uses an entirely different frontend than the Quartus one, it'll be updated however soon.

from hls4ml.

pierinim avatar pierinim commented on May 19, 2024

hls4ml will eventually consisted of three frontends for three different HLS backends. When these developments will be over, all these frontends will be integrated in a single package.

from hls4ml.

jmduarte avatar jmduarte commented on May 19, 2024

Close with #245

from hls4ml.

Related Issues (20)

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.