Developing FPGA-accelerated cloud applications with SDAccel: Theory

بواسطة: Polimi OPEN KNOWLEDGE

Overview

We are entering an era in which technological progress induces paradigm shifts in computing.

As a tradeoff between the two extreme characteristics of GPP and ASIC, we can find a new concept, a new idea of computing... the reconfigurable computing, which has combined the advantages of both the previous worlds. Within this context, we can say that reconfigurable computing will widely, pervasively, and gradually impact human lives. Hence, it is time that we focus on how reconfigurable computing and reconfigurable system design techniques are to be utilised for building applications.

On one hand reconfigurable computing can have better performance with respect to a software implementation but paying this in terms of time to implement. On the other hand a reconfigurable device can be used to design a system without requiring the same design time and complexity compared to a full custom solution but being beaten in terms of performance.

Within this context, the Xilinx SDx tools, including the SDAccel environment, the SDSoC environment, and Vivado HLS, provide an out-of-the-box experience for system programmers looking to partition elements of a software application to run in an FPGA-based hardware element, and having that hardware work seamlessly with the rest of the application running in a processor or embedded processor.

The out-of-the-box experience will provide interesting and, let us say, “good enough” results for many applications.

However, this may not be true for you, you may be looking for better performance, data throughput, reduced latency, or to reduce the resources usage...

This course is focusing on this. After introducing you to the FPGAs we are going to dig more into the details on how to use Xilinx SDAccel providing you also with working examples on how to optimize the hardware logic to obtain the best of of your hardware implementations. In this case, certain attributes, directives, or pragmas, can be used to direct the compilation and synthesis of the hardware kernel, or to optimise the function of the data mover operating between the processor and the hardware logic.

Furthermore, in this course we are going to focus on distributed, heterogeneous infrastructures, presenting how to bring your solutions to life by using the Amazon EC2 F1 instances.

 

 

Developing FPGA-accelerated cloud applications with SDAccel: Theory
الذهاب الي الدورة

Developing FPGA-accelerated cloud applications with SDAccel: Theory

بواسطة: Polimi OPEN KNOWLEDGE

  • Polimi OPEN KNOWLEDGE
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • أيام محددة
  • الجميع
  • N/A
8.1.2PHP Version266msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (167ms)
    • Application (97.95ms)
    • 1 x Booting (62.9%)
      167.17ms
      1 x Application (36.86%)
      97.95ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed6.96ms
      • select * from `courses` where `slug_ar` = 'developing-fpga-accelerated-cloud-applications-with-sdaccel:-theoryL8Z' limit 1
        5.21ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. developing-fpga-accelerated-cloud-applications-with-sdaccel:-theoryL8Z
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-04-16 16:28:58' where `id` = 2548
        720μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-16 16:28:58
        • 1. 2548
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (1)
        240μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        220μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (55) and `institutions`.`deleted_at` is null
        210μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (48) and `providers`.`deleted_at` is null
        160μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 2539 limit 1
        200μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 2539
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        M7aLGwVvUmuq9VEvtqHClA5PcYWpQRHe0v1ZkX6k
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/develo...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/developing-fpga-accelerated-cloud-applications-with-sdaccel:-theoryL8Z
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "18.188.115.61" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "93150f111e0833d0-AMS" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "x-forwarded-for" => array:1 [ 0 => "18.188.115.61" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "18.188.115.61" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "93150f111e0833d0-AMS" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_X_FORWARDED_FOR" => "18.188.115.61" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "43674" "REMOTE_ADDR" => "104.23.170.91" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/developing-fpga-accelerated-cloud-applications-with-sdaccel:-theoryL8Z" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1744820938.4472 "REQUEST_TIME" => 1744820938 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Wed, 16 Apr 2025 16:28:58 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6InhnZlhLNEcwemsxZjVVcVRGRGJKMEE9PSIsInZhbHVlIjoieGdRWURYWktPMjFVYWt2SW8xTFNHY3ZpKzZTdzlud0EwZnpieGdDbXdVWEZycE43cDF1OTZTeGQ4Mk41YnVvYWF5RHpKVFVpRGRZc29NcFllMFlSMFBsMmU2VGJCNWF0azhoYTlramxKdFR3KytEYWJHbVEzbTU2MlB3c3RHangiLCJtYWMiOiIyZjNlNGU0ZjZjOGNlZDAyODEyNWUxZTRmNjQ4ZmEyYjY3ZDM4MDlhZTYxMjNkMjU0NjIzZTdlOTUyZmRiYWI0IiwidGFnIjoiIn0%3D; expires=Wed, 16 Apr 2025 18:28:58 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6InhnZlhLNEcwemsxZjVVcVRGRGJKMEE9PSIsInZhbHVlIjoieGdRWURYWktPMjFVYWt2SW8xTFNHY3ZpKzZTdzlud0EwZnpieGdDbXdVWEZycE43cDF1OTZTeGQ4Mk41YnVvYWF5RHpKV" 1 => "laravel_session=eyJpdiI6IlllS250MVMxcUxMTU9JWStHU2szaWc9PSIsInZhbHVlIjoiSWlWKzFiYVJWeCtSVEJvU2orWTZTOGRYbkdqTE14MWUvYWhsdFQzZnBPb1JJQlZwN2UzRGxlL0JTUG00SDJvTFhua2pheG85V0owaUFRNmZWN3lIRHhhdHdyaGovMGRuM1BTNDhLYjN3UVY2QlVsbm5UTDBYZVpCSklUYUdodngiLCJtYWMiOiJkMDYwMTE5ZThiYWViNDE2NjVjNjNlYzhkOWYxMzkxMzBlZmExNDYwODczYjY3ZDY1YjI2MTA1MmFmNGYxNjFmIiwidGFnIjoiIn0%3D; expires=Wed, 16 Apr 2025 18:28:58 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IlllS250MVMxcUxMTU9JWStHU2szaWc9PSIsInZhbHVlIjoiSWlWKzFiYVJWeCtSVEJvU2orWTZTOGRYbkdqTE14MWUvYWhsdFQzZnBPb1JJQlZwN2UzRGxlL0JTUG00SDJvTFhu" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6InhnZlhLNEcwemsxZjVVcVRGRGJKMEE9PSIsInZhbHVlIjoieGdRWURYWktPMjFVYWt2SW8xTFNHY3ZpKzZTdzlud0EwZnpieGdDbXdVWEZycE43cDF1OTZTeGQ4Mk41YnVvYWF5RHpKVFVpRGRZc29NcFllMFlSMFBsMmU2VGJCNWF0azhoYTlramxKdFR3KytEYWJHbVEzbTU2MlB3c3RHangiLCJtYWMiOiIyZjNlNGU0ZjZjOGNlZDAyODEyNWUxZTRmNjQ4ZmEyYjY3ZDM4MDlhZTYxMjNkMjU0NjIzZTdlOTUyZmRiYWI0IiwidGFnIjoiIn0%3D; expires=Wed, 16-Apr-2025 18:28:58 GMT; path=/XSRF-TOKEN=eyJpdiI6InhnZlhLNEcwemsxZjVVcVRGRGJKMEE9PSIsInZhbHVlIjoieGdRWURYWktPMjFVYWt2SW8xTFNHY3ZpKzZTdzlud0EwZnpieGdDbXdVWEZycE43cDF1OTZTeGQ4Mk41YnVvYWF5RHpKV" 1 => "laravel_session=eyJpdiI6IlllS250MVMxcUxMTU9JWStHU2szaWc9PSIsInZhbHVlIjoiSWlWKzFiYVJWeCtSVEJvU2orWTZTOGRYbkdqTE14MWUvYWhsdFQzZnBPb1JJQlZwN2UzRGxlL0JTUG00SDJvTFhua2pheG85V0owaUFRNmZWN3lIRHhhdHdyaGovMGRuM1BTNDhLYjN3UVY2QlVsbm5UTDBYZVpCSklUYUdodngiLCJtYWMiOiJkMDYwMTE5ZThiYWViNDE2NjVjNjNlYzhkOWYxMzkxMzBlZmExNDYwODczYjY3ZDY1YjI2MTA1MmFmNGYxNjFmIiwidGFnIjoiIn0%3D; expires=Wed, 16-Apr-2025 18:28:58 GMT; path=/; httponlylaravel_session=eyJpdiI6IlllS250MVMxcUxMTU9JWStHU2szaWc9PSIsInZhbHVlIjoiSWlWKzFiYVJWeCtSVEJvU2orWTZTOGRYbkdqTE14MWUvYWhsdFQzZnBPb1JJQlZwN2UzRGxlL0JTUG00SDJvTFhu" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "M7aLGwVvUmuq9VEvtqHClA5PcYWpQRHe0v1ZkX6k" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/developing-fpga-accelerated-cloud-applications-with-sdaccel:-theoryL8Z" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]