Machine Learning on FPGAs: Circuit Architecture and FPGA Implementation

Поделиться
HTML-код
  • Опубликовано: 15 сен 2024

Комментарии • 58

  • @m_fadhln
    @m_fadhln 4 года назад +15

    OMG I just started learning ML and DL implementation on FPGAs and I found your channel. Greetings from Indonesia 🎉

    • @yoginiprabhu8048
      @yoginiprabhu8048 3 года назад

      Same here. Good luck, Muhammad

    • @xiu6583
      @xiu6583 Год назад

      Hi please give me yr email

  • @squeakytoyrecords1702
    @squeakytoyrecords1702 3 месяца назад +1

    You hit this one out of the park!! Well done, Thank you.

  • @ahmedal-musharraf9242
    @ahmedal-musharraf9242 4 года назад +5

    This channel is a gold nugget! ,,, keep up the amazing work,, thank you 😊

  • @travhenry3451
    @travhenry3451 3 года назад +4

    This is amazing and very helpful. Concepts are explained very well, keep up the great work!

  • @olypphia
    @olypphia 3 года назад +1

    This video inspired me that it is really possible to implement AI scenarios to hardware, via FPGA. Keep the good work Sir, and thank you for sharing this valuable knowledge.

  • @KristianDjukic
    @KristianDjukic 6 месяцев назад +1

    very interesting and thanks for publishing this stuff

  • @jasonmurphy3731
    @jasonmurphy3731 3 года назад +1

    Just awesome ! Thanks for publishing this.

  • @teitoklien
    @teitoklien 3 года назад +2

    Awesome vid !
    Thanks !

  • @bouslahbrahim4168
    @bouslahbrahim4168 Год назад +1

    Excellent Mr thanks a lot

  • @arunuday6109
    @arunuday6109 Год назад

    Awesome ! Thanks for publishing this.

  • @mbuaesenju8514
    @mbuaesenju8514 Год назад +1

    thank you. Perfect!

  • @agustinsilva447
    @agustinsilva447 3 года назад +2

    Loving this playlist I just started working in fpga-based reinforcement learning implementations and I started looking at in youtube, this is a very good introduction, are you going to talk about RL implementations ? That woul be amazing!

  • @theoryandapplication7197
    @theoryandapplication7197 4 месяца назад +1

    thank you sir the video that i am looking for

  • @mehmetburakaykenar
    @mehmetburakaykenar 2 года назад +2

    Thanks for these great tutoria videos Prof Winzker. I want to ask a question, I am new to NN world and now focused on research of NN HW acceleration structures on FPGA and ASIC. I read that the NN structures you utilized in this example is called as Multilayer Perceptron (MLP). However, I see tons of accelerators for Convolutional Neural Network (CNN) structions. Also CNN is mentioned a lot on image classification. You also work on image processing and NN application on images. Can you give some info about when to use MLP and CNN, or can you refer me a paper about which NN structures are being utilized mostly on ML applications ? Thanks a lot for everything again

    • @marcowinzker3682
      @marcowinzker3682  2 года назад +1

      This example uses a single hidden layer to show the principle of an NN. The task is designed that it fits this architecture.
      A CNN is helpful, when you want to identify complex objects with a combination of several features. So you identify four legs, pointy ears, whiskers in the front layers. Then following layer of the CNN concludes that the image shows a cat.
      A hardware accelerator uses the structure that I presented but normally has a complex scheduling. So there is a CPU that gives small pieces of the task to the accelerator hardware. The CPU collects results, and again sends new tasks to the hardware.
      I don't really have a paper that I can point to. Sorrry.

    • @mehmetburakaykenar
      @mehmetburakaykenar 2 года назад +1

      @@marcowinzker3682 Thanks a lot. I will look for papers and if found a good one write it to here

  • @samyakjain327
    @samyakjain327 3 года назад +1

    Great Work. I have question like if I want to perform this on real hardware then how can we check the output aka new modified image by an algorithm?

    • @marcowinzker3682
      @marcowinzker3682  3 года назад

      The best approach for verification is simulation! And then you compare the output with another model, for example the Octave result. There is an example for this approach for the FIR filter in the video "FPGA FIR Filter: Verification with VHDL Testbench" and "FPGA FIR Filter: Self-Checking Testbench".
      If you want to check the output on real hardware, you would check the result on a monitor. You can also take the result with a frame grabber and analyze it.
      Our remote lab does this. You can click on the output image and store it on your computer. (However, the image is compressed with JPEG to save bandwidth, so the result is not bit-true.)

    • @samyakjain327
      @samyakjain327 3 года назад

      @@marcowinzker3682 Right, but how your simulator get the output image from FPGA. I am trying to make something the same physical.

    • @marcowinzker3682
      @marcowinzker3682  3 года назад

      @@samyakjain327 If you want something physical, you need an FPGA board with video input and video output port. Such a sytem is described in the video "Image Processing with Terasic FPGA-Boards"

    • @samyakjain327
      @samyakjain327 3 года назад

      Okay, Thank you so much for support

  • @muhammedfayas5907
    @muhammedfayas5907 4 месяца назад

    SIr, Do you know how to access the biult in FPGA block RAM and store the text file?

    • @marcowinzker3682
      @marcowinzker3682  3 месяца назад

      Please have a look at the video "Machine Learning on FPGAs: Sigmoid Function and Exercises".
      The sigmoid function is implemented with a built-in block RAM.
      ruclips.net/video/dygzrBiDFnk/видео.html

  • @tonydo29
    @tonydo29 3 года назад +1

    Dear professor!
    Your lecture very very impressive to me. I'm following your tutorial until the step of load Name filter of Cyclone IV, could you please tell to me which "name filter" did you use in your lab? Warmly thank professor so much~

    • @marcowinzker3682
      @marcowinzker3682  3 года назад

      The Cyclone IV is a EP4CE22E22C7. You find this information in the constraints file QSF.
      And it is also in the FAQ: www.h-brs.de/de/emt/frequently-asked-questions-fpga-vision-remote-lab

    • @tonydo29
      @tonydo29 3 года назад

      @@marcowinzker3682 Thanks professor for your reply in detail.
      However, I'm facing with a problem when execute bit file in your sever, I receive the output was "no singal". Could you please help me to check your server? thank professor so much~

    • @marcowinzker3682
      @marcowinzker3682  3 года назад +1

      @@tonydo29 Please check the FAQ, there is a "no signal" item.
      In 95% of the cases this error is caused by missing pin assignments.

    • @tonydo29
      @tonydo29 3 года назад

      @@marcowinzker3682 Warmly thank professor for your information. I'll take a look and check it now~

  • @fc3fc354
    @fc3fc354 22 дня назад

    Hi , I wanted to ask something
    Since the we will deploy the NN in FPGA to store th data persistency of the training and predicting shouldnt we convert the training images in a fixed point representation ?

    • @marcowinzker3682
      @marcowinzker3682  21 день назад

      Hi, the training images do not go into the FPGA. They are used to determine the parameters and the parameters go into the FPGA.

    • @fc3fc354
      @fc3fc354 21 день назад

      @@marcowinzker3682 sorry maybe we misunderstood each other
      Once the parameters have been calculated( the parameters have been defined on base of the input images) , then at inference time when the fpga gets the image data(after it has been trained) and goes on the forward propagation , is it bad if we took the images as double while in fpga they will be processed as fixed points?

    • @marcowinzker3682
      @marcowinzker3682  21 день назад

      @@fc3fc354 There is research on doing machine learning applications without high precision arithmetic. Of course there are small differences if you do floating point or fixed point with 32, 16, 8 bit accuracy. Often 8 bit accuracy gives good results with acceptable hardware effort.

  • @ANONYMOUS-kv6wu
    @ANONYMOUS-kv6wu 3 года назад +1

    Thank you for such great content sir!!!.I would like to try this project as part of an academic work. Could you please provide the testbench vhdl code for this for simulation? I am just a beginner. It would be of great help.

    • @marcowinzker3682
      @marcowinzker3682  3 года назад

      A complete testbench is available for the FIR filter experiment. If you are a beginner, I recommend that lecture. Then you can adapt that testbench to this design.
      ruclips.net/video/o3hk7xAY5-s/видео.html
      ruclips.net/video/wTIHEX7WWvg/видео.html

    • @ANONYMOUS-kv6wu
      @ANONYMOUS-kv6wu 3 года назад

      @@marcowinzker3682 Thank you sir... i will try

    • @EceEnthusiast
      @EceEnthusiast 4 месяца назад

      Where you able to write testbench code for this simulation? it would be really helpful for me as I am also a beginner and want to try this as an engineering project but I don't have enough time to try on my own.

  • @mallikarjunumadi2794
    @mallikarjunumadi2794 3 года назад

    I couldn't get the input image and image_label in previous video..can you please provide details?

    • @marcowinzker3682
      @marcowinzker3682  3 года назад

      You can download the video from our homepage www.h-brs.de/de/fpga-vision-lab with the name "Video with road signs on motorway (CC BY)". Our you can make a screenshot from the remote-lab. Then you have to generate the image label file. Octave script are intended (and have been tested) with image size 720p, i.e. 1280x720 pixel.
      We do not provide the images. You have to generate them on your own.

  • @aratishah3691
    @aratishah3691 3 года назад

    Thank you for video. Can you show how to implement spiking neural network in FPGA board?

    • @marcowinzker3682
      @marcowinzker3682  3 года назад +1

      Good idea. I am supported by student thesis and will take this topic on my list.

    • @aratishah3691
      @aratishah3691 3 года назад

      @@marcowinzker3682 Thank you, Professor. Hope to see new videos on SNN soon.

  • @LSyedAkram
    @LSyedAkram 2 года назад

    Why do we need a control block for sync signals

    • @marcowinzker3682
      @marcowinzker3682  2 года назад

      The video signal consists of two parts:
      1) image information: red, green, blue
      2) sync signals to indicate when a new frame or a new line begins
      The control block copies the sync signals from input to output. Because the image information needs some clock cycles for processing, the sync signals needs the same delay. So, the control block copies the sync signals with some clock cycles delay.

    • @LSyedAkram
      @LSyedAkram 2 года назад

      @@marcowinzker3682 Thanks!!!!

  • @SW-ud1wt
    @SW-ud1wt 2 года назад

    Nice lecture. Sir i want to implement alexnet cnn arch on FPGA, is it do able or not? Please guide

    • @marcowinzker3682
      @marcowinzker3682  2 года назад

      Basically yes, but this is a large project. You need a large FPGA and scheduling of the layers with subsampling. Use of a framework (like ruclips.net/video/FFUyRQukGvM/видео.html) is recommend.
      A good approach is an architecture with a CPU for scheduling of tasks and FPGA fabris as an accelerator.

    • @SW-ud1wt
      @SW-ud1wt 2 года назад

      @@marcowinzker3682 can i have your email so that i can email you proposed design. I'm planning to do in parallel as soon as each byte enters into system.

    • @SW-ud1wt
      @SW-ud1wt 2 года назад

      @@marcowinzker3682 thanks for your response 👍

    • @marcowinzker3682
      @marcowinzker3682  2 года назад

      @@SW-ud1wt I am sorry, I can not give individual support.

    • @SW-ud1wt
      @SW-ud1wt 2 года назад

      @@marcowinzker3682 ok

  • @yoginiprabhu8048
    @yoginiprabhu8048 3 года назад

    How was the user interface prepared?

    • @marcowinzker3682
      @marcowinzker3682  3 года назад +1

      The remote lab uses WebLab-Deusto as the management software.

  • @user-yu3is8kx4e
    @user-yu3is8kx4e 3 года назад

    Could you disclose the vhdl codes ?

    • @marcowinzker3682
      @marcowinzker3682  3 года назад

      The code is available. See description of video.

  • @Ali-wf9ef
    @Ali-wf9ef 3 года назад

    Your code didn't look very pipelined

    • @marcowinzker3682
      @marcowinzker3682  3 года назад +2

      Are you joking? At minute 4:45 you see the pipeline stages. There is a lot of pipelining!
      In the code you see it at minute 8:05 inisde the neuron. You get a pipeline stage when you have a signal assignment '