Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Requirements for Phase II (WIP) #1

Open
avive opened this issue Nov 28, 2019 · 1 comment
Open

Requirements for Phase II (WIP) #1

avive opened this issue Nov 28, 2019 · 1 comment

Comments

@avive
Copy link
Member

@avive avive commented Nov 28, 2019

  1. Implement the library with Vulkan compute engine for os x, linux and windows on amd, nvidia and Intel gpus.

  2. Benchmark on all supported OSs and many major cards.

  3. If Vulkan performance can be on-par with the CUDA implementation then implement with Vulkan for all platforms(os x, linux, windows), and for all Vulkan supported GPUs (including Intel GPUs), otherwise: add OS X support via Vulkan only. Optimized API implementation for (n, 1, 1) - similar to phase I requirements.

  4. Vulkan performance target is between the OpenCL and the Cuda implementation and no less than 80% of Cuda.

  5. For OS X - If Vulkan performance is not good compared to Cuda then fallback to implement Cuda for Nvidia GPUs and OpenCL for Intel + AMD GPUs.

  6. All new implementations: optimize for (n=variable, r=1, p=1) scrypt params.

References

http://www.duskborn.com/posts/a-simple-vulkan-compute-example/

@avive

This comment has been minimized.

Copy link
Member Author

@avive avive commented Dec 13, 2019

  • Implement gpu-post in Vulkan / SpirV. Support any Vulkan 1.0 compatible gpu from all major vendors (Intel, AMD, Nvidia) on linux / windows. Benchmark. Deliverable: library can run on any Vulkan 1.0 compatible GPU with the appropriate drivers installed.
  • Implement same as above for OS X possibly using MoltenVK https://github.com/KhronosGroup/MoltenVK ? benchmark. Deliverable: library can be built on OS X and run on any GPU (requires just metal support)?
  • Optimize Vulkan implementation for (n=arbitrary, r=1, p=1) on all supported systems / major gpus and OSes. Performance goal: At least 75% of CUDA gpu-post and equal or better than OpenCL gpu-post on the same gpu.

References

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
1 participant
You can’t perform that action at this time.