GithubHelp home page GithubHelp logo

vulkan's Issues

First version

Hi people,

In this issue I will track the progress for the first version of Vulkan support for Gorgonia as proposed by 0x0f0f0f. This is not an exhaustive list. There is a lot to be figured out and I will add items along the way.

My current plan is to see if I can get something of the ground. There will be a lot of work that needs to be done that I won't be able to get around to. If you want to contribute, let me know and we'll figure out what you can do. For casual contributors, I'll try to make some nice low-hanging-fruit tasks available soon-ish.

TODO

  • Initialization
    • Create instance
    • Set-up validation layers and debug callback
    • Hardware device selection
    • Logical device creation
    • Load queues
  • Computing (not yet connected to Gorgonia)
    • Load data using buffers and descriptors onto the GPU
    • Retrieve buffers from the GPU (is this different from retrieving the result from a shader?)
    • Create a compute pipeline (reference)
    • Create a command buffer
    • Run a command buffer / figure out fences etc.
    • Retrieve the result of a shader
    • ...
  • Implement tensor Engine interface
  • Write shaders
    • Test output by comparing it to cpu tensor output
  • Make simple program that lists graphics cards and capabilities for debugging
  • Write readme
  • Write other docs
  • Add licence file

Low hanging fruit / other free to take tasks

  • Test the cmd/testing application on Windows. The docs state that SetDefaultGetInstanceProcAddr is only implemented for Linux but the implementation tells a different story.
  • Test the cmd/testing application on Mac. The docs state that SetDefaultGetInstanceProcAddr is only available for Linux. Looking at the implementation, this seems to be true for Mac. Check if there is an issue for this in the vulkan-go repo, create an issue for this or see if we can get this working some other way without needing a windowing library.

When you take on a low-hanging-fuit task, please comment below so other contributors know not to work on the same task.

Contributing

For Vulkan you need to install the Vulkan drivers for your specific graphics card. You'll also need to install the Vulkan SDK. Read this tutorial for extra instructions. You can ignore the GLFW/GLM parts.

If you're new to Vulkan, I recommend diving into this tutorial. It is focused a bit more on the graphics side than on the compute but you'll notice that a lot of it works in the same way.

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.