Skip to content

Instantly share code, notes, and snippets.

View hyunsik's full-sized avatar
🏠
Working from home

Hyunsik Choi hyunsik

🏠
Working from home
View GitHub Profile
@hyunsik
hyunsik / furiosa-docs-version-switcher.json
Last active April 23, 2025 19:21
furiosa-docs-version-switcher
[
{
"name": "2025.2.0 (stable)",
"version": "2025.2.0",
"url": "https://developer.furiosa.ai/v2025.2.0/"
},
{
"version": "2025.1.0",
"url": "https://developer.furiosa.ai/v2025.1.0/"
},
@hyunsik
hyunsik / Llama-3.1-Instruct.tpl
Last active October 11, 2024 06:01
Llama-3.1-Instruct.tpl
{{- bos_token }}
{%- if custom_tools is defined %}
{%- set tools = custom_tools %}
{%- endif %}
{%- if not tools_in_user_message is defined %}
{%- set tools_in_user_message = true %}
{%- endif %}
{%- if not date_string is defined %}
{%- set date_string = "26 Jul 2024" %}
{%- endif %}
@hyunsik
hyunsik / sel_le_long_long_col_col.java
Created August 29, 2016 03:02
Select primitive in vectorized processing model
int sel_le_long_long_col_col(int vec_num, int [] res_sel_vec,
long [] col1, long [] col2, int [] sel_vec) {
int ret = 0;
if (sel_vec == null) {
for (int i = 0; i < vec_num; i++) {
if (col1[i] < col2[i]) {
res_sel_vec[ret++] = i
}
}
} else {
@hyunsik
hyunsik / map_add_long_int_col_col.java
Last active August 29, 2016 03:03
Add primitive in vectorized processing model
map_add_long_int_col_col(int vec_num, long [] result, long [] col1,
int [] col2, int [] sel_vec) {
if (sel_vec == null) {
for (int i = 0; i = 0; i < vec_num; i++) {
result[i] = col1[i] + col2[i];
}
} else {
int sel_idx;
for (int i = 0; I = 0; i < vec_num; i++) {
sel_idx = sel_vec[i];
@hyunsik
hyunsik / unrolled.c
Created August 29, 2016 02:33
unrolled for-loop
for (i = 0; i < 128; i+=4) {
a[i] = b[i] + c[i];
a[i+1] = b[i+1] + c[i+1];
a[i+2] = b[i+2] + c[i+2];
a[i+3] = b[i+3] + c[i+3];
}
@hyunsik
hyunsik / unoptimized.c
Created August 29, 2016 02:32
Unoptimized for-loop
for (i = 0; i < 128; i++) {
a[i] = b[i] + c[i];
}
@hyunsik
hyunsik / uselect_bt_void_int_bat_int_const.c
Created August 29, 2016 02:30
A primitive example of column-at-a-time model
int uselect_bt_void_int_bat_int_const(oid *output, int *input, int value, int size) {
oid i;
int j = 0;
for (i = 0; i < size; i++) {
if (input[i] > value) {
output[j++] = i;
}
}
return j;
}
@hyunsik
hyunsik / tpch_q1.sql
Created August 29, 2016 02:27
TPC-H Q1
select
l_returnflag, l_linestatus, sum(l_quantity) as sum_qty,
sum(l_extendedprice) as sum_base_price,
sum(l_extendedprice*(1-l_discount)) as sum_disc_price,
sum(l_extendedprice*(1-l_discount)*(1+l_tax)) as sum_charge,
avg(l_quantity) as avg_qty,
avg(l_extendedprice) as avg_price, avg(l_discount) as avg_disc,
count(*) as count_order
from
lineitem
@hyunsik
hyunsik / latency_comparison_numbers.txt
Created August 29, 2016 02:21
Latency Comparison Numbers
Latency Comparison Numbers
--------------------------
execute typical instruction 1 ns 1/1,000,000,000 sec
L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cache reference 7 ns 14x L1 cache
Mutex lock/unlock 25 ns
Main memory reference 100 ns 20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy 3,000 ns
Send 1K bytes over 1 Gbps network 10,000 ns
@hyunsik
hyunsik / ColumnVector.java
Last active August 25, 2016 23:54
ColumnVector in Hive
public abstract class ColumnVector {
public boolean[] isNull;
public boolean noNulls;
public boolean isRepeating;
...
}
public class LongColumnVector extends ColumnVector {
public long[] vector;
public static final long NULL_VALUE = 1;