Skip to content

Instantly share code, notes, and snippets.

why doesn't radfft support AVX on PC?

So there's two separate issues here: using instructions added in AVX and using 256-bit wide vectors. The former turns out to be much easier than the latter for our use case.

Problem number 1 was that you positively need to put AVX code in a separate file with different compiler settings (/arch:AVX for VC++, -mavx for GCC/Clang) that make all SSE code emitted also use VEX encoding, and at the time radfft was written there was no way in CDep to set compiler flags for just one file, just for the overall build.

[There's the GCC "target" annotations on individual funcs, which in principle fix this, but I ran into nasty problems with this for several compiler versions, and VC++ has no equivalent, so we're not currently using that and just sticking with different compilation units.]

The other issue is to do with CPU power management.

@Grogdor
Grogdor / rtorrent
Last active January 15, 2023 16:57
rtorrent FreeBSD startup rc.d service script tmux user
#!/bin/sh
#
# $FreeBSD$
#
# Runs as unprivileged user "rtorrent"
# Lives in "tmux" (like "screen") because rtorrent can't daemonize itself
# To access rtorrent client that's in the tmux: su - rtorrent && tmux attach
# To detach the tmux and leave rtorrent running: Ctrl-B then D
# nice'd default +10 step to make it go easy on the machine
# Don't forget to put rtorrent_enable="YES" in your /etc/rc.conf
@sunetos
sunetos / fizzbuzz_explained.py
Last active March 28, 2022 00:39
A breakdown of my condensed, obfuscated fizzbuzz for educational purposes
#!/usr/bin/env python
__author__ = 'Adam R. Smith (adam@adamia.com)'
# Loop from 0 through 99. Need zero-based for the later cyclic bit-shifting.
for x in xrange(100):
# There are 4 possible outputs on each iteration of the loop.
# 4 possibilities requires 2 bits to store (0, 1, 2, 3):
# 0 == 00b == the number (x + 1)
# 1 == 01b == 'Fizz' when a multiple of just 3
@crazybyte
crazybyte / git_cheatsheet.md
Last active April 25, 2019 13:13
Advanced (almost) git command cheatsheet

Commiting

  • Changing the last commit message
    git commit --amend -m "New commit message"  
  • Ignoring at commit the modifications of an already tracked file: