• Breaking News

    Sunday, August 9, 2020

    New Vulkan FFT library - VkFFT (open-source, crossplatform, faster than cuFFT) Computer Science

    New Vulkan FFT library - VkFFT (open-source, crossplatform, faster than cuFFT) Computer Science


    New Vulkan FFT library - VkFFT (open-source, crossplatform, faster than cuFFT)

    Posted: 08 Aug 2020 06:24 AM PDT

    Hello, I would like to share my take on Fast Fourier Transform library for Vulkan. Due to the low level nature of Vulkan, I was able to match Nvidia's cuFFT speeds and in many cases outperform it, while making VkFFT crossplatform - it works on Nvidia, AMD and Intel GPUs. It also has support for many useful features, such as R2C/C2R transforms, convolutions and native zero padding, which opens up possibilities for Vulkan-based scientific applications (I will make a post on an example case of magnetism simulation software later).

    github repository: https://github.com/DTolm/VkFFT

    Some of the features, that can give an insight of how VkFFT works and why it is extremely fast:

    1. Each multidimensional FFT is decomposed into the set of 1D FFTs. This is a common approach to the problem. Each 1D sequence from the set is then separately uploaded to shared memory and FFT is performed there fully, hence the current 4096 dimension limit (4096xFP32 complex = 32KB, which is a common shared memory size). This is the reason why VkFFT only needs one read/write to the on-chip memory per axis to do FFT. It also allows to perform FFT in-place.
    2. All memory accesses are non-strided. This is a very important part, as GPU can upload 32 nearest floats at once. For this, to perform FFT in strided directions (y or z), we have to transpose the data, which takes time roughly equal to one read + one write. As there is only power of two sizes, the transposition after some permutations on the sequence elements can be done in-place with no performance loss.
    3. If sequence has a langth of <=256, we don't have to transpose the matrix. The non-strided access can be acheved by grouping 16 nearby complex numbers or performing 16 FFTs at once. This is the reason why small FFTs are so fast in VkFFT. However, this optimization messes up with the memory layout (see picture on the main page) but if you plan on doing convolutions, output data will return to the way it was before.
    4. Convolutions. They are embedded in the last axis FFT, which reduces total memory read/writes by 1.
    5. As the register file is usually bigger than shared memory (256KB) I have an implementation that relies on it for FFT, using shared memory as a communication buffer. This allows to do 8K and 16K sequences in one go, which is planned for a future update.
    6. To summarize, most of the time is taken by data transfers from graphics card memory to the on-chip memory, and not by the FFT computation itself (I think it is close to 80% of time). This is why it is so advantageous to have explicit memory control provided by Vulkan API. For 256x256x256 FFT there are only 3 reads and 3 writes, which is an absolute possible minimum right now. The convolution for this system will only take 5 reads/writes (+kernel upload).

    Thank you for the read! Feedback is welcome!

    submitted by /u/xdtolm
    [link] [comments]

    Why do people use obscure programming languages?

    Posted: 08 Aug 2020 06:55 AM PDT

    Full disclosure , I am from a mathematics background working in data science, so my computer science knowledge is definitely lacking...

    I just got a suggestion to join the D programming language subreddit and it prompted me to wonder why people choose to get into lesser known languages. What are major benefits in obscure languages that people seek out?

    submitted by /u/BrandenKeck
    [link] [comments]

    Beginner student not even

    Posted: 09 Aug 2020 02:37 AM PDT

    Beginner not even

    Hi there! I'm going starting first year uni this year and have computer science as my major. My whole life I decided to be a doctor but now facing reality I don't have that dedication or 10 more years of wanting to learn so I chose the field of computer science. I am okay at math I've heard there's a lot of math in this subject. Not great at math but still above average. I have very little to almost no knowledge of this subject. Is it possible to still pursue this major? I'm a pretty hard working person with a solid work ethic but I'm still really scared bc I haven't ever experienced with this subject

    submitted by /u/ParfaitLevel
    [link] [comments]

    Make easy edits to high-quality, diverse, and photorealistic images on real images and those generated by GANs!

    Posted: 08 Aug 2020 08:13 PM PDT

    Interactive Torus Shaped ASCII project

    Posted: 08 Aug 2020 12:50 PM PDT

    Resources for Data Science and Data Analyst Interviews in Python

    Posted: 08 Aug 2020 12:40 PM PDT

    Hello everyone, I'm an incoming 3rd year Stats major and I'm at the process of applying to internships for the school year. I'm still kind of confused on what resources would prepare me for interviews in terms of using Python. I know it depends on the company, some use Leetcode style questions and some are much more of familiarity with syntax and solve a basic data analysis problem. I have an idea on how to prepare for SQL style questions since the programming language is straightforward to see the pattern of how many functions work and requires less lines of code whereas Python is more dynamic. If anyone has suggestions, you can let me know in the chat below.

    submitted by /u/jefftheaggie69
    [link] [comments]

    Is there an online converter/software to convert ERD to Database schema?

    Posted: 08 Aug 2020 03:16 PM PDT

    The title says it all.
    Thanks in advance.

    submitted by /u/i_Always-Lie
    [link] [comments]

    Which is the greater barrier to effective simulation of complex structures?

    Posted: 08 Aug 2020 03:09 PM PDT

    e.g. In being able to very effectively model and predict to the the structure and behaviour of proteins etc. Are hardware limits insurmountable even with P=NP?

    submitted by /u/conmiserosapiens
    [link] [comments]

    WOZNIAK LIVE: Prospect 100 Global Tech Competition

    Posted: 08 Aug 2020 10:20 AM PDT

    No comments:

    Post a Comment