Skip to content

Instantly share code, notes, and snippets.

View sonots's full-sized avatar
🤗

Naotoshi Seo sonots

🤗
View GitHub Profile
@sonots
sonots / nvvp.md
Last active February 18, 2026 17:17
How to use NVIDIA profiler

Usually, located at /usr/local/cuda/bin

Non-Visual Profiler

$ nvprof python train_mnist.py

I prefer to use --print-gpu-trace.

@sonots
sonots / bangaihen.md
Last active February 8, 2026 11:12
Rubyプロセスを追いかけるツール(番外編)

[C] perf

perf というのは performance analytics tool for Linux とかいうやつでコレを使うと cpu の何クロック使ったとか、L1 cache ミスヒット率といったような、よりハードウェアレイヤーに近いプロファイリング、Kernel レベルのプロファイリングができる。

CentOS なら yum install perf で入る。

perf top コマンドを使うと、イベントが発生した割合を top コマンド的に逐次的に更新して表示してくれる。

$ sudo perf top -p 23975
@sonots
sonots / fluentd_hacking_guide.md
Last active October 4, 2024 00:01
Fluentd ソースコード完全解説 (v0.10向け)

Fluentd ソースコード完全解説

英題:Fluentd Hacking Guide

目次

30分しかないため斜線部分は今回省く

  • Fluentd の起動シーケンスとプラグインの読み込み
  • Fluentd の設定ファイルのパース
  • Input Plugin から Output Plugin にデータが渡る流れ

centos6 だと epel の libev が古くてめんどくさくなったので centos7 でビルドした。

sudo yum groupinstall "Development Tools"
sudo yum install libev libev-devel zlib zlib-devel openssl openssl-devel git
git clone git@github.com:tatsuhiro-t/nghttp2.git
cd nghttp2

rb_thread_call_without_gvl を使う

例えば普通に書くと

nvrtcResult status = nvrtcCreateProgram(&_prog, _src, _name, _numHeaders, _headers, _includeNames);

となる C 関数の呼び出しを、GVLを外して呼び出すには、

@sonots
sonots / preprocessor.pyx
Created October 13, 2017 15:54
preprocessor in cython
# A trick to embed preprocessors in cython
cdef extern from *:
cdef void EMIT_IF_PYTHON_VERSION_HEX_LT_37 "#if PY_VERSION_HEX < 0x03070000 //" ()
cdef void EMIT_ELSE "#else //" ()
cdef void EMIT_ENDIF "#endif //" ()
EMIT_IF_PYTHON_VERSION_HEX_LT_37()
EMIT_ELSE()
2019-11-28 08:15:11 +0000 [info]: parsing config file is succeeded path="/etc/google-fluentd/google-fluentd.conf"
2019-11-28 08:15:12 +0000 [info]: Detected GCE platform
2019-11-28 08:15:12 +0000 [info]: Logs viewer address: https://console.cloud.google.com/logs/viewer?project=teak-kit-226806&resource=container/instance_id/7530681816608554840
2019-11-28 08:15:12 +0000 [info]: Detected GCE platform
2019-11-28 08:15:12 +0000 [info]: Logs viewer address: https://console.cloud.google.com/logs/viewer?project=teak-kit-226806&resource=gce_instance/instance_id/7530681816608554840
2019-11-28 08:15:12 +0000 [info]: Detected GCE platform
2019-11-28 08:15:12 +0000 [info]: Logs viewer address: https://console.cloud.google.com/logs/viewer?project=teak-kit-226806&resource=container/instance_id/7530681816608554840
2019-11-28 08:15:13 +0000 [warn]: 'time_format' specified without 'time_key', will be ignored
2019-11-28 08:15:13 +0000 [warn]: 'filters' parameter is deprecated: filters has been renamed as matches
2019-11-28 08:1
@sonots
sonots / cudaMallocBench.cu
Last active January 4, 2023 09:28
Benchmark of cudaMalloc. Allocate 1MB of memory totally with several block sizes
#include <sys/time.h>
#include <cuda_runtime.h>
#include <stdio.h>
inline double seconds()
{
struct timeval tp;
struct timezone tzp;
int i = gettimeofday(&tp, &tzp);
return ((double)tp.tv_sec + (double)tp.tv_usec * 1.e-6);
@sonots
sonots / runs-on: ubuntu-latest.txt
Last active August 26, 2022 09:46
Environment Variables on Github Actions
GOROOT_1_11_X64=/usr/local/go1.11
ANDROID_HOME=/usr/local/lib/android/sdk
JAVA_HOME_11_X64=/usr/lib/jvm/zulu-11-azure-amd64
ImageVersion=20190930.2
LANG=C.UTF-8
INVOCATION_ID=029524e610de4329ac57a8f3e8b21281
JAVA_HOME_12_X64=/usr/lib/jvm/zulu-12-azure-amd64
ANDROID_SDK_ROOT=/usr/local/lib/android/sdk
RUNNER_TOOL_CACHE=/opt/hostedtoolcache
JAVA_HOME=/usr/lib/jvm/zulu-11-azure-amd64
@sonots
sonots / deployment-sample.yaml
Last active February 4, 2022 13:09
fluentd-firehose.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-sweet-api
spec:
template:
metadata:
annotations:
fluentd_firehose_delivery_stream_name: "my-sweet-firehose-stream-name"