Loose-Info.com
Last Update 2026/07/26
TOP - 各種テスト - LLM - ローカルLLMの実測値比較 - コーディング(設定用パラメータ比較) - Nemotron 3 Super

低スペック寄りのPCでローカルLLMを動作させた際の記録です。
LLM以外の仮想マシンなどが起動され、多少負荷がかかった状態で実行しています。
ベンチマークなどでLLMの性能を評価する内容ではありません。

検証用PC

OS

Debian GNU/Linux 12 (bookworm)

CPU

Intel(R) Core(TM) i5-14400F

GPU

GeForce RTX 3060 12GB

メモリ

DDR4 PC4-25600 32GB × 4

SSD

crucial P310 CT1000P310SSD8-JP


構築環境 : Docker + Ollama (特別な設定などは無い状態)

検証用プロンプト

``` ### 依頼内容 - コード生成 ### 指示 - C言語 - コード以外の出力は不要 - 中括弧スタイルはオールマン - テストコードも生成 - テストコードは別ファイル - 実行用ソースファイル名 : sample_code.c - テスト用ソースファイル名 : sample_test.c - 標準ヘッダ以外は使用しない - 戻り値はEXIT_SUCCESSを使用 - 関数はmain()の前で定義 ### コード仕様(sample_code.c) - コマンドラインから整数2つを取得 - [引数1]から[引数2]までをインクリメントして空白区切りで標準出力に出力 - 出力する文字列はmain()ではなく関数で生成 ### コード仕様(sample_test.c) - unity.hを使用しない ```

モデル詳細

Model architecture nemotron_h_moe parameters 123.6B context length 262144 embedding length 4096 quantization Q4_K_M requires 0.17.1 Capabilities completion tools thinking Parameters temperature 1 top_p 0.95

Nemotron 3 Super [実測結果一覧へ]

(1) temperature=---; top_p=---; top_k=--
(2) temperature=0.70; top_p=0.7; top_k=--
(3) temperature=0.50; top_p=0.8; top_k=--
(4) temperature=0.50; top_p=0.7; top_k=--
(5) temperature=0.30; top_p=0.8; top_k=--
(6) temperature=0.30; top_p=0.7; top_k=--
(7) temperature=0.15; top_p=---; top_k=--
(8) temperature=0.15; top_p=0.8; top_k=--
(9) temperature=0.15; top_p=0.7; top_k=--
(10) temperature=0.15; top_p=0.5; top_k=--
(11) temperature=0.15; top_p=0.4; top_k=--
(12) temperature=0.15; top_p=0.7; top_k=32
(13) temperature=0.15; top_p=0.7; top_k=16
(14) temperature=0.10; top_p=0.7; top_k=--

(1) temperature=---; top_p=---; top_k=--

2026-07-21 total duration: 10m2.216323084s load duration: 121.443783ms prompt eval count: 236 token(s) prompt eval duration: 6.698009412s prompt eval rate: 35.23 tokens/s eval count: 2798 token(s) eval duration: 9m54.515661006s eval rate: 4.71 tokens/s

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルをオールマンで生成 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 start > end の場合はNULL文字のみのメモリへのポインタを返す 文字列長に応じたメモリの確保(エラー処理有) インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 文字列用メモリの解放 ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 文字列生成関数を5種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 < 整数2 ただし、整数1が負数 (3) 整数1 == 整数2 (4) 整数1 > 整数2 (5) 整数1 == 整数2 ただし、整数1と整数2は共に0 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -o sample_test sample_code.c sample_test.c /bin/ld: /tmp/cc0yfrVk.o: in function `main': sample_test.c:(.text+0xb8): multiple definition of `main'; /tmp/ccW7k3LS.o:sample_code.c:(.text+0x192): first defined here collect2: error: ld returned 1 exit status $ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加 $ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c $ ./sample_code 1 5 1 2 3 4 5 $ ./sample_code -3 3 -3 -2 -1 0 1 2 3 $ ./sample_code 1 1 1 $ ./sample_code 5 1 $ ./sample_test All tests passed.

(2) temperature=0.70; top_p=0.7; top_k=--

2026-07-21 total duration: 10m51.397727601s load duration: 26.593826281s prompt eval count: 236 token(s) prompt eval duration: 7.579792556s prompt eval rate: 31.14 tokens/s eval count: 2866 token(s) eval duration: 10m16.20129105s eval rate: 4.65 tokens/s

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルをオールマンで生成 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 文字列長に応じたメモリの確保(エラー処理有) インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 文字列用メモリの解放 ・テストコードを別途生成 実行用コードと同一の文字列生成関数定義を記述 main()を伴うテストコード 文字列生成関数を4種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 ただし、整数1と整数2は共に0 (3) 整数1 < 整数2 ただし、整数1が負数 (4) 整数1 > 整数2 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c sample_code.c: In function ‘generate_range’: sample_code.c:26:9: warning: implicit declaration of function ‘strcat’ [-Wimplicit-function-declaration] 26 | strcat(buf, tmp); | ^~~~~~ sample_code.c:3:1: note: include ‘<string.h>’ or provide a declaration of ‘strcat’ 2 | #include <stdlib.h> +++ |+#include <string.h> 3 | sample_code.c:26:9: warning: incompatible implicit declaration of built-in function ‘strcat’ [-Wbuiltin-declaration-mismatch] 26 | strcat(buf, tmp); | ^~~~~~ sample_code.c:26:9: note: include ‘<string.h>’ or provide a declaration of ‘strcat’ $ gcc -o sample_test sample_test.c $ ./sample_code 1 5 1 2 3 4 5 $ ./sample_code -3 3 -3 -2 -1 0 1 2 3 $ ./sample_code 1 1 1 $ ./sample_code 5 1 $ ./sample_test Tests passed: 4/4

(3) temperature=0.50; top_p=0.8; top_k=--

2026-07-21 total duration: 10m2.819798936s load duration: 116.440965ms prompt eval count: 236 token(s) prompt eval duration: 6.574946978s prompt eval rate: 35.89 tokens/s eval count: 2791 token(s) eval duration: 9m55.344601201s eval rate: 4.69 tokens/s

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルをオールマンで生成 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 start > end の場合はNULL文字のみのメモリへのポインタを返す 文字列長に応じたメモリの確保(エラー処理有) インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 文字列用メモリの解放 ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 文字列生成関数を5種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 < 整数2 ただし、整数1が負数 (3) 整数1 == 整数2 (4) 整数1 > 整数2 (5) 整数1 < 整数2 ただし、整数1と整数2は共に6桁 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -o sample_test sample_code.c sample_test.c /bin/ld: /tmp/ccGPoLFh.o: in function `main': sample_test.c:(.text+0x0): multiple definition of `main'; /tmp/ccYikywe.o:sample_code.c:(.text+0x0): first defined here collect2: error: ld returned 1 exit status $ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加 $ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c $ ./sample_code 1 5 1 2 3 4 5 $ ./sample_code -3 3 -3 -2 -1 0 1 2 3 $ ./sample_code 1 1 1 $ ./sample_code 5 1 $ ./sample_test ← テスト成功時は出力無し $

(4) temperature=0.50; top_p=0.7; top_k=--

2026-07-21 total duration: 6m39.755262538s load duration: 28.221597693s prompt eval count: 248 token(s) prompt eval duration: 6.973613212s prompt eval rate: 35.56 tokens/s eval count: 1722 token(s) eval duration: 6m3.970680079s eval rate: 4.73 tokens/s

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルが関数のみオールマンスタイル ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 start > end の場合はNULLポインタを返す 文字列長に応じたメモリの確保(エラー処理有) インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 文字列用メモリの解放 ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 文字列生成関数を5種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 (3) 整数1 > 整数2 (4) 整数1 < 整数2 ただし、整数1が負数 (5) 整数1 == 整数2 ただし、整数1と整数2は共に0 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -o sample_test sample_code.c sample_test.c /bin/ld: /tmp/ccaCaiZf.o: in function `main': sample_test.c:(.text+0x105): multiple definition of `main'; /tmp/cczyCKhC.o:sample_code.c:(.text+0x12c): first defined here collect2: error: ld returned 1 exit status $ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加 $ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c $ ./sample_code 1 5 1 2 3 4 5 $ ./sample_code -3 3 -3 -2 -1 0 1 2 3 $ ./sample_code 1 1 1 $ ./sample_code 5 1 $ ./sample_test [PASS] normal range 1-5 [PASS] single number 7 [PASS] reverse range [PASS] negative to positive [PASS] zero range 5/5 tests passed

(5) temperature=0.30; top_p=0.8; top_k=--

2026-07-21 total duration: 9m31.513664565s load duration: 104.16717ms prompt eval count: 236 token(s) prompt eval duration: 6.634800208s prompt eval rate: 35.57 tokens/s eval count: 2653 token(s) eval duration: 9m23.989008548s eval rate: 4.70 tokens/s

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルをオールマンで生成 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 文字列長に応じたメモリの確保(エラー処理有) インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 文字列用メモリの解放 ・テストコードを別途生成 実行用コードと同一の文字列生成関数定義を記述 main()を伴うテストコード 文字列生成関数を5種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 < 整数2 ただし、整数1が負数 (3) 整数1 == 整数2 (4) 整数1 == 整数2 ただし、整数1と整数2は共に0 (5) 整数1 > 整数2 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -Wall -o sample_test sample_test.c $ ./sample_code 1 5 1 2 3 4 5 $ ./sample_code -3 3 -3 -2 -1 0 1 2 3 $ ./sample_code 1 1 1 $ ./sample_code 5 1 $ ./sample_test PASS: start=1 end=5 PASS: start=-2 end=2 PASS: start=7 end=7 PASS: start=0 end=0 PASS: start=10 end=8 All tests passed.

(6) temperature=0.30; top_p=0.7; top_k=--

2026-07-21 total duration: 9m42.821528263s load duration: 102.489901ms prompt eval count: 236 token(s) prompt eval duration: 6.594549894s prompt eval rate: 35.79 tokens/s eval count: 2715 token(s) eval duration: 9m35.357207984s eval rate: 4.72 tokens/s

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルのオールマン指定を無視 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 start > end の場合はNULL文字のみのメモリへのポインタを返す 文字列長に応じたメモリの確保(エラー処理有) インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() main()関数重複エラー解消のための条件付きコンパイル用の#ifdefマクロを記述 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 文字列用メモリの解放 ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 文字列生成関数を5種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 < 整数2 ただし、整数1が負数 (3) 整数1 == 整数2 (4) 整数1 > 整数2 (5) 整数1 == 整数2 ただし、整数1と整数2は共に0 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c sample_code.c: In function ‘main’: sample_code.c:15:17: warning: implicit declaration of function ‘generate_range’ [-Wimplicit-function-declaration] 15 | char *out = generate_range(start, end); | ^~~~~~~~~~~~~~ sample_code.c:15:17: warning: initialization of ‘char *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion] sample_code.c: At top level: sample_code.c:26:7: error: conflicting types for ‘generate_range’; have ‘char *(int, int)’ 26 | char *generate_range(int start, int end) { | ^~~~~~~~~~~~~~ sample_code.c:15:17: note: previous implicit declaration of ‘generate_range’ with type ‘int()’ 15 | char *out = generate_range(start, end); | ^~~~~~~~~~~~~~ $ vi sample_code.c ← main()の前にgenerate_range()の宣言を追加 $ gcc -Wall -o sample_code sample_code.c $ gcc -o sample_test sample_test.c $ ./sample_code 1 5 1 2 3 4 5 $ ./sample_code -3 3 -3 -2 -1 0 1 2 3 $ ./sample_code 1 1 1 $ ./sample_code 5 1 $ ./sample_test PASS: generate_range(1,5) => "1 2 3 4 5" PASS: generate_range(-2,2) => "-2 -1 0 1 2" PASS: generate_range(10,10) => "10" PASS: generate_range(5,3) => "" PASS: generate_range(0,0) => "0" All tests passed.

(7) temperature=0.15; top_p=---; top_k=--

2026-07-21 total duration: 7m35.866650894s load duration: 106.710434ms prompt eval count: 236 token(s) prompt eval duration: 6.742419736s prompt eval rate: 35.00 tokens/s eval count: 2109 token(s) eval duration: 7m28.392495453s eval rate: 4.70 tokens/s

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルのオールマン指定を無視 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 文字列長に応じたメモリの確保 インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 文字列用メモリの解放 ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 文字列生成関数を1種類のみの引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -o sample_test sample_code.c sample_test.c /bin/ld: /tmp/cc1WTWMJ.o: in function `main': sample_test.c:(.text+0x0): multiple definition of `main'; /tmp/ccpHEUdv.o:sample_code.c:(.text+0xe1): first defined here collect2: error: ld returned 1 exit status $ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加 $ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c $ ./sample_code 1 5 1 2 3 4 5 $ ./sample_code -3 3 -3 -2 -1 0 1 2 3 $ ./sample_code 1 1 1 $ ./sample_code 5 1 $ ./sample_test PASS

(8) temperature=0.15; top_p=0.8; top_k=--

2026-07-21 total duration: 4m51.451231582s load duration: 26.515029589s prompt eval count: 236 token(s) prompt eval duration: 7.080139559s prompt eval rate: 33.33 tokens/s eval count: 1217 token(s) eval duration: 4m17.43297132s eval rate: 4.73 tokens/s

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルのオールマン指定を無視 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 start > end の場合はNULL文字のみのメモリへのポインタを返す 文字列長に応じたメモリの確保(エラー処理有) インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 文字列用メモリの解放 ・テストコードを別途生成 sample_code.cをインクルード main()を伴うテストコード 文字列生成関数を5種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 ただし、整数1と整数2は共に0 (3) 整数1 < 整数2 ただし、整数1が負数 (4) 整数1 == 整数2 (5) 整数1 < 整数2 ただし、整数1と整数2は共に負数 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -Wall -o sample_test sample_test.c sample_test.c:17:5: error: conflicting types for ‘main’; have ‘int(void)’ 17 | int main(void) { | ^~~~ In file included from sample_test.c:4: sample_code.c:28:5: note: previous definition of ‘main’ with type ‘int(int, char **)’ 28 | int main(int argc, char* argv[]) { | ^~~~ $ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加 $ gcc -D TEST_MAIN -Wall -o sample_test sample_test.c sample_test.c: In function ‘test_case’: sample_test.c:11:9: warning: pointer ‘output’ may be used after ‘free’ [-Wuse-after-free] 11 | printf("FAIL: generate_range(%d, %d) => expected \"%s\", got \"%s\"\n", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 12 | start, end, expected, output ? output : "NULL"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sample_test.c:9:5: note: call to ‘free’ here 9 | free(output); | ^~~~~~~~~~~~ $ vi sample_test.c ← メモリの解放をポインタ使用終了後に移動 $ gcc -D TEST_MAIN -Wall -o sample_test sample_test.c $ ./sample_code 1 5 1 2 3 4 5 $ ./sample_code -3 3 -3 -2 -1 0 1 2 3 $ ./sample_code 1 1 1 $ ./sample_code 5 1 $ ./sample_test All tests passed.

(9) temperature=0.15; top_p=0.7; top_k=--

2026-07-21 total duration: 10m46.63809369s load duration: 140.959932ms prompt eval count: 236 token(s) prompt eval duration: 7.636560353s prompt eval rate: 30.90 tokens/s eval count: 2974 token(s) eval duration: 10m37.93882211s eval rate: 4.66 tokens/s

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルをオールマンで生成 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 start > end の場合はNULL文字のみのメモリへのポインタを返す 文字列長に応じたメモリの確保(エラー処理有) インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 文字列用メモリの解放 ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 文字列生成関数を6種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 < 整数2 ただし、整数1が負数 (3) 整数1 == 整数2 (4) 整数1 > 整数2 (5) 整数1 == 整数2 ただし、整数1と整数2は共に0 (6) 整数1 < 整数2 ただし、整数1と整数2は共に3桁 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -Wall -o sample_test sample_code.c sample_test.c sample_test.c: In function ‘test_case’: sample_test.c:22:9: warning: pointer ‘result’ may be used after ‘free’ [-Wuse-after-free] 22 | fprintf(stderr, " got: \"%s\"\n", result); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sample_test.c:17:5: note: call to ‘free’ here 17 | free(result); | ^~~~~~~~~~~~ /bin/ld: /tmp/ccSE6Uhk.o: in function `main': sample_test.c:(.text+0xf2): multiple definition of `main'; /tmp/cck2hnZ5.o:sample_code.c:(.text+0x0): first defined here collect2: error: ld returned 1 exit status $ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加 $ vi sample_test.c ← メモリの解放をポインタ使用終了後に移動 $ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c $ ./sample_code 1 5 1 2 3 4 5 $ ./sample_code -3 3 -3 -2 -1 0 1 2 3 $ ./sample_code 1 1 1 $ ./sample_code 5 1 $ ./sample_test All tests passed

(10) temperature=0.15; top_p=0.5; top_k=--

2026-07-21 total duration: 6m25.79040625s load duration: 107.53023ms prompt eval count: 236 token(s) prompt eval duration: 6.78029542s prompt eval rate: 34.81 tokens/s eval count: 1781 token(s) eval duration: 6m18.398356599s eval rate: 4.71 tokens/s

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルが関数のみオールマンスタイル ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 start > end の場合はNULL文字のみのメモリへのポインタを返す 文字列長に応じたメモリの確保(エラー処理有) インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 文字列用メモリの解放 ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 文字列生成関数を6種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 (3) 整数1 > 整数2 (4) 整数1 < 整数2 ただし、整数1が負数 (5) 整数1 == 整数2 ただし、整数1と整数2は共に0 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -Wall -o sample_test sample_code.c sample_test.c /bin/ld: /tmp/cculhZQ7.o: in function `main': sample_test.c:(.text+0x2cf): multiple definition of `main'; /tmp/ccA70Yg3.o:sample_code.c:(.text+0x13d): first defined here collect2: error: ld returned 1 exit status $ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加 $ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c $ ./sample_code 1 5 1 2 3 4 5 $ ./sample_code -3 3 -3 -2 -1 0 1 2 3 $ ./sample_code 1 1 1 $ ./sample_code 5 1 $ ./sample_test All tests passed

(11) temperature=0.15; top_p=0.4; top_k=--

2026-07-21 total duration: 7m31.557314115s load duration: 82.226767ms prompt eval count: 236 token(s) prompt eval duration: 6.619726023s prompt eval rate: 35.65 tokens/s eval count: 2080 token(s) eval duration: 7m24.246572506s eval rate: 4.68 tokens/s

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルが関数のみオールマンスタイル ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 文字列長に応じたメモリの確保(エラー処理有) インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 文字列用メモリの解放 ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 文字列生成関数を6種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 < 整数2 ただし、整数1が負数 (3) 整数1 > 整数2 (4) 整数1 == 整数2 ただし、整数1と整数2は共に0 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -Wall -o sample_test sample_code.c sample_test.c /bin/ld: /tmp/cc9laCoT.o: in function `main': sample_test.c:(.text+0xa2): multiple definition of `main'; /tmp/ccQOBFLO.o:sample_code.c:(.text+0x11e): first defined here collect2: error: ld returned 1 exit status $ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加 $ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c $ ./sample_code 1 5 1 2 3 4 5 $ ./sample_code -3 3 -3 -2 -1 0 1 2 3 $ ./sample_code 1 1 1 $ ./sample_code 5 1 $ ./sample_test ← テスト成功時は出力無し $

(12) temperature=0.15; top_p=0.7; top_k=32

2026-07-21 total duration: 6m57.761105084s load duration: 27.337995632s prompt eval count: 236 token(s) prompt eval duration: 7.016087686s prompt eval rate: 33.64 tokens/s eval count: 1798 token(s) eval duration: 6m22.731222709s eval rate: 4.70 tokens/s

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルのオールマン指定を無視 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 文字列長に応じたメモリの確保(エラー処理有) インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 文字列用メモリの解放 ・テストコードを別途生成 sample_code.cをインクルード main()を伴うテストコード 文字列生成関数を6種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 < 整数2 ただし、整数1が負数 (3) 整数1 == 整数2 ただし、整数1と整数2は共に0 (4) 整数1 == 整数2 (5) 整数1 < 整数2 ただし、整数1と整数2は共に6桁 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -Wall -o sample_test sample_test.c sample_test.c:36:5: error: conflicting types for ‘main’; have ‘int(void)’ 36 | int main(void) { | ^~~~ In file included from sample_test.c:5: sample_code.c:23:5: note: previous definition of ‘main’ with type ‘int(int, char **)’ 23 | int main(int argc, char* argv[]) { | ^~~~ $ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加 $ gcc -D TEST_MAIN -Wall -o sample_test sample_test.c $ ./sample_code 1 5 1 2 3 4 5 $ ./sample_code -3 3 -3 -2 -1 0 1 2 3 $ ./sample_code 1 1 1 $ ./sample_code 5 1 $ ./sample_test All tests passed

(13) temperature=0.15; top_p=0.7; top_k=16

2026-07-21 total duration: 7m12.162875131s load duration: 26.821893274s prompt eval count: 236 token(s) prompt eval duration: 7.216865682s prompt eval rate: 32.70 tokens/s eval count: 1867 token(s) eval duration: 6m37.492303762s eval rate: 4.70 tokens/s

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルのオールマン指定を無視 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 start > end の場合はNULL文字のみのメモリへのポインタを返す 文字列長に応じたメモリの確保(エラー処理有) インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 文字列用メモリの解放 ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 文字列生成関数を5種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 (3) 整数1 > 整数2 (4) 整数1 < 整数2 ただし、整数1が負数 (5) 整数1 == 整数2 ただし、整数1と整数2は共に0 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -Wall -o sample_test sample_code.c sample_test.c /bin/ld: /tmp/ccl4HJF2.o: in function `main': sample_test.c:(.text+0xb8): multiple definition of `main'; /tmp/ccYbBXcc.o:sample_code.c:(.text+0x150): first defined here collect2: error: ld returned 1 exit status $ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加 $ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c $ ./sample_code 1 5 1 2 3 4 5 $ ./sample_code -3 3 -3 -2 -1 0 1 2 3 $ ./sample_code 1 1 1 $ ./sample_code 5 1 $ ./sample_test All tests passed.

(14) temperature=0.10; top_p=0.7; top_k=--

2026-07-21 total duration: 10m5.901635546s load duration: 98.550732ms prompt eval count: 236 token(s) prompt eval duration: 6.679483698s prompt eval rate: 35.33 tokens/s eval count: 2798 token(s) eval duration: 9m58.270785572s eval rate: 4.68 tokens/s

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルをオールマンで生成 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 文字列長に応じたメモリの確保(エラー処理有) インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 文字列用メモリの解放 ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 文字列生成関数を5種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 < 整数2 ただし、整数1が負数 (3) 整数1 == 整数2 (4) 整数1 > 整数2 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -Wall -o sample_test sample_code.c sample_test.c /bin/ld: /tmp/ccwDpVor.o: in function `main': sample_test.c:(.text+0x62): multiple definition of `main'; /tmp/cc3BIRqd.o:sample_code.c:(.text+0x112): first defined here collect2: error: ld returned 1 exit status $ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加 $ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c $ ./sample_code 1 5 1 2 3 4 5 $ ./sample_code -3 3 -3 -2 -1 0 1 2 3 $ ./sample_code 1 1 1 $ ./sample_code 5 1 $ ./sample_test All tests passed