Loose-Info.com
Last Update 2026/09/09
TOP - 各種テスト - LLM - ローカルLLMの実測値比較 - コーディング(設定用パラメータ比較) - Qwen3.8-Flash-Next (GPU無)

低スペック寄りの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 qwen4exp parameters 176.9B context length 262144 embedding length 2560 quantization Q4_K_M requires 0.33.3 Capabilities completion vision tools thinking Projector architecture clip parameters 448.93M embedding length 1152 dimensions 2560 Parameters top_p 0.95 min_p 0 presence_penalty 0 repeat_penalty 1 temperature 1 top_k 20

Qwen3.8-Flash-Next (GPU無) [実測結果一覧へ]

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

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

2026-09-07 total duration: 7m58.204275197s load duration: 1m24.807530895s prompt eval count: 195 token(s) prompt eval duration: 7.198471s prompt eval rate: 27.09 tokens/s eval count: 2402 token(s) eval duration: 6m26.089563s eval rate: 6.22 tokens/s (GPU無)

コード生成結果の概要

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

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -D SAMPLE_TEST -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 Memory allocation failed $ ./sample_test Running tests... [PASS] test_basic_range [PASS] test_negative_range [PASS] test_single_value [PASS] test_negative_to_negative [PASS] test_zero_to_large [PASS] test_large_numbers All tests passed.

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

2026-09-07 total duration: 4m52.704850615s load duration: 2.488897ms prompt eval count: 195 token(s) prompt eval cached: 191 token(s) prompt eval duration: 339.971ms prompt eval rate: 11.77 tokens/s eval count: 1865 token(s) eval duration: 4m52.228607s eval rate: 6.38 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルをオールマンで生成 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 メモリの確保はmain()側 文字列用配列の初期化 インクリメント+空白区切りで文字列用メモリに書き込み ・main() 引数個数のチェック(エラー処理有) 文字列用メモリはchar配列4096バイト固定 文字列生成関数の呼び出し 生成文字列の標準出力への出力 ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 文字列生成関数を6種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 (3) 整数1 < 整数2 ただし、整数1が負数 (4) 整数1 > 整数2 (5) 整数1 == 整数2 ただし、整数1、整数2が共に0 (6) 整数1 < 整数2 ただし、整数1、整数2が共に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/ccglmdHE.o: in function `main': sample_test.c:(.text+0x38d): multiple definition of `main'; /tmp/ccQBScKf.o:sample_code.c:(.text+0xf7): 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 === Tests Start === [PASS] sample_test.c:31 [PASS] sample_test.c:38 [PASS] sample_test.c:45 [PASS] sample_test.c:52 [PASS] sample_test.c:59 [PASS] sample_test.c:66 === Tests End: 6/6 passed ===

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

2026-09-07 total duration: 5m50.087179154s load duration: 1.72211ms prompt eval count: 195 token(s) prompt eval cached: 191 token(s) prompt eval duration: 290.348ms prompt eval rate: 13.78 tokens/s eval count: 2223 token(s) eval duration: 5m49.645223s eval rate: 6.36 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルをオールマンで生成 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 メモリの確保はmain()側 文字列用配列の初期化 インクリメント+空白区切りで文字列用メモリに書き込み ・main() 引数個数のチェック(エラー処理有) 文字列用メモリはchar配列4096バイト固定 引数値のチェック(エラー判定有) 文字列生成関数の呼び出し(エラー処理有) 生成文字列の標準出力への出力 ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 文字列生成関数を8種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 (3) 整数1 < 整数2 ただし、整数1が負数 (4) 整数1 == 整数2 ただし、整数1、整数2が共に0 (5) 整数1 < 整数2 ただし、整数1、整数2が共に2桁 (6) メモリへのポインタがNULL (7) メモリサイズが0 (8) メモリサイズが必要量より少ない (注) 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/cc4sRiQ7.o: in function `main': sample_test.c:(.text+0x78c): multiple definition of `main'; /tmp/ccmIgMCw.o:sample_code.c:(.text+0xea): 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 Error: start(5) must be <= end(1) $ ./sample_test === Running tests === [PASS] basic range 1..5 [PASS] single value 7..7 [PASS] negative range -3..3 [PASS] zero range 0..0 [PASS] range 10..15 [PASS] NULL buffer returns NULL [PASS] zero buf_size returns NULL [FAIL] truncation with small buffer expected: "1" actual: "1 2" ← テスト用のメモリサイズと期待値が合致しない === Results: 7/8 passed === $ vi sample_test.c ← テスト用のメモリサイズを修正 $ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c $ ./sample_test === Running tests === [PASS] basic range 1..5 [PASS] single value 7..7 [PASS] negative range -3..3 [PASS] zero range 0..0 [PASS] range 10..15 [PASS] NULL buffer returns NULL [PASS] zero buf_size returns NULL [PASS] truncation with small buffer === Results: 8/8 passed ===

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

2026-09-07 total duration: 4m50.017234581s load duration: 1.768352ms prompt eval count: 195 token(s) prompt eval cached: 191 token(s) prompt eval duration: 308.352ms prompt eval rate: 12.97 tokens/s eval count: 1857 token(s) eval duration: 4m49.568841s eval rate: 6.41 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルをオールマンで生成 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 メモリの確保はmain()側 文字列用配列の初期化 インクリメント+空白区切りで文字列用メモリに書き込み ・main() 引数個数のチェック(エラー処理有) 文字列用メモリはchar配列4096バイト固定 文字列生成関数の呼び出し 生成文字列の標準出力への出力 ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 文字列生成関数を7種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 (3) 整数1 < 整数2 ただし、整数1が負数 (4) 整数1 > 整数2 (5) 整数1 < 整数2 ただし、整数1、整数2の差が大きい (6) 整数1 == 整数2 ただし、整数1、整数2が共に0 (7) メモリサイズが必要量より少ない (注) 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/ccBGFdJZ.o: in function `main': sample_test.c:(.text+0x7c0): multiple definition of `main'; /tmp/cceU7oZQ.o:sample_code.c:(.text+0xbb): 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 === Unit Tests === test_basic_range: [PASS] range 1 to 5 test_single_value: [PASS] single value 3 to 3 test_negative_range: [PASS] range -2 to 2 test_start_greater_than_end: [PASS] start > end produces empty string test_large_range: [PASS] range 0 to 9 test_zero_to_zero: [PASS] range 0 to 0 test_buffer_overflow: [PASS] buffer not overflowed === Results: 7 tests, 7 passed, 0 failed ===

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

2026-09-07 total duration: 5m30.72589442s load duration: 2.091031ms prompt eval count: 195 token(s) prompt eval cached: 191 token(s) prompt eval duration: 295.27ms prompt eval rate: 13.55 tokens/s eval count: 2106 token(s) eval duration: 5m30.27756s eval rate: 6.38 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルをオールマンで生成 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 引数値のチェック(エラー判定有) 文字列長に応じたメモリの確保(エラー処理有) インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 生成文字列の標準出力への出力 文字列用メモリの解放 ・テストコードを別途生成 実行用コードと同一の文字列生成関数定義を記述 main()を伴うテストコード 文字列生成関数を6種類の引数の組み合わせでテスト実行 (1) 整数1 == 整数2 (2) 整数1 < 整数2 (3) 整数1 < 整数2 ただし、整数1が負数 (4) 整数1 > 整数2 (5) 整数1 == 整数2 ただし、整数1、整数2が共に0 (6) 整数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_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 Error: invalid range or allocation failure $ ./sample_test PASS: test_single_number PASS: test_positive_range PASS: test_negative_to_positive PASS: test_start_greater_than_end PASS: test_zero_range PASS: test_large_range All tests passed.

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

2026-09-07 total duration: 8m41.690362198s load duration: 1m30.000128744s prompt eval count: 195 token(s) prompt eval duration: 6.918975s prompt eval rate: 28.18 tokens/s eval count: 2664 token(s) eval duration: 7m4.643492s eval rate: 6.27 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルをオールマンで生成 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 メモリの確保はmain()側 文字列用配列の初期化無し インクリメント+空白区切りで文字列用メモリに書き込み ・main() 引数個数のチェック(エラー処理有) 文字列用メモリはchar配列4096バイト固定 文字列生成関数の呼び出し 生成文字列の標準出力への出力 テスト時にmain()除外のマクロを配置 ・テストコードを別途生成 sample_code.cをインクルード main()を伴うテストコード 文字列生成関数を5種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 (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_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 x ← 配列初期化が無いため不定文字出力 $ ./sample_test PASS: basic range 1 to 5 PASS: single value 3 to 3 PASS: negative range -2 to 2 PASS: empty range 5 to 3 ← テストコード内で配列初期化しているためテストは通る PASS: range 0 to 10 5/5 tests passed $ vi sample_code.c ← 配列初期化処理を追加 $ gcc -Wall -o sample_code sample_code.c $ ./sample_code 5 1 $

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

2026-09-07 total duration: 5m42.777802204s load duration: 1.910776ms prompt eval count: 195 token(s) prompt eval cached: 191 token(s) prompt eval duration: 287.596ms prompt eval rate: 13.91 tokens/s eval count: 2160 token(s) eval duration: 5m42.362147s eval rate: 6.31 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルをオールマンで生成 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 文字列長に応じたメモリの確保(エラー処理有) 文字列用メモリの初期化 インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 生成文字列の標準出力への出力 文字列用メモリの解放 ・テストコードを別途生成 実行用コードと同一の文字列生成関数定義を記述 main()を伴うテストコード 文字列生成関数を6種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 (3) 整数1 < 整数2 ただし、整数1が負数 (4) 整数1 < 整数2 ただし、整数1が0 (5) 整数1 < 整数2 ただし、整数1、整数2が共に5桁以上 (6) 整数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 Memory allocation failed $ ./sample_test [PASS] test_basic_range [PASS] test_single_value [PASS] test_negative_range [PASS] test_zero_to_positive [PASS] test_large_numbers [FAIL] test_start_greater_than_end expected: "" ← 期待値がNULLでは無く空文字 actual: "(null)" 5/6 tests passed $ vi sample_test.c ← 比較処理の一部修正と期待値をNULLに設定 $ gcc -Wall -o sample_test sample_test.c $ ./sample_test [PASS] test_basic_range [PASS] test_single_value [PASS] test_negative_range [PASS] test_zero_to_positive [PASS] test_large_numbers [PASS] test_start_greater_than_end 6/6 tests passed

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

2026-09-07 total duration: 5m29.514656102s load duration: 2.262932ms prompt eval count: 195 token(s) prompt eval cached: 191 token(s) prompt eval duration: 286.512ms prompt eval rate: 13.96 tokens/s eval count: 2087 token(s) eval duration: 5m29.068225s eval rate: 6.34 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルをオールマンで生成 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 引数値のチェック(エラー判定有) 文字列長に応じたメモリの確保(エラー処理有) 文字列用メモリの初期化 インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 生成文字列の標準出力への出力 文字列用メモリの解放 ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 文字列生成関数を5種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 < 整数2 ただし、整数1が0 (3) 整数1 == 整数2 (4) 整数1 < 整数2 ただし、整数1が負数 (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_code.c sample_test.c /bin/ld: /tmp/cc7xE7Lt.o: in function `main': sample_test.c:(.text+0x3f2): multiple definition of `main'; /tmp/cct5BnaK.o:sample_code.c:(.text+0xfd): 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 Error: invalid range $ ./sample_test === Running tests === test_basic_range: PASS: "1 2 3 4 5" PASS: "0 1 2 3" test_single_value: PASS: "7" test_negative_range: PASS: "-2 -1 0 1 2" test_invalid_range: PASS: NULL test_large_range: PASS: "10 11 12 13 14 15" === Results: 6/6 passed ===

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

2026-09-07 total duration: 5m4.834154833s load duration: 1.939058ms prompt eval count: 195 token(s) prompt eval cached: 191 token(s) prompt eval duration: 282.81ms prompt eval rate: 14.14 tokens/s eval count: 1926 token(s) eval duration: 5m4.404103s eval rate: 6.33 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルをオールマンで生成 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 引数値のチェック(エラー判定有) 文字列長に応じたメモリの確保(エラー処理有) 文字列用メモリの初期化 インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 生成文字列の標準出力への出力 文字列用メモリの解放 ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 戻り値のNULLチェックと期待値との比較のセットを実行 文字列生成関数を6種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 (3) 整数1 < 整数2 ただし、整数1が負数 (4) 整数1 > 整数2 (5) 整数1 == 整数2 ただし、整数1、整数2が共に0 (6) 整数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_code.c sample_test.c /bin/ld: /tmp/ccYEfYGQ.o: in function `main': sample_test.c:(.text+0x6f6): multiple definition of `main'; /tmp/ccLFtvZT.o:sample_code.c:(.text+0x16b): 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: result is not NULL PASS: range 1 to 5 PASS: single value not NULL PASS: range 7 to 7 PASS: negative range not NULL PASS: range -2 to 2 PASS: empty range not NULL PASS: start > end returns empty PASS: zero range not NULL PASS: range 0 to 0 PASS: large range not NULL PASS: range 10 to 15 --- Results: 12/12 passed, 0 failed ---

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

2026-09-07 total duration: 4m26.13304421s load duration: 1.833999ms prompt eval count: 195 token(s) prompt eval cached: 191 token(s) prompt eval duration: 284.243ms prompt eval rate: 14.07 tokens/s eval count: 1710 token(s) eval duration: 4m25.699515s eval rate: 6.44 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルをオールマンで生成 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 引数値のチェック(エラー判定有) 文字列長に応じたメモリの確保(エラー処理有) 文字列用メモリの初期化 インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 生成文字列の標準出力への出力 文字列用メモリの解放 ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 文字列生成関数を6種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 (3) 整数1 < 整数2 ただし、整数1が負数 (4) 整数1 > 整数2 (5) 整数1 < 整数2 ただし、整数1、整数2の差が大きい (6) 整数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/ccTpCefz.o: in function `main': sample_test.c:(.text+0x28d): multiple definition of `main'; /tmp/cczQylOP.o:sample_code.c:(.text+0x195): 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] test_basic_range [PASS] test_single_value [PASS] test_negative_range [PASS] test_start_greater_than_end [PASS] test_large_range [PASS] test_zero_range --- Results: 6/6 passed, 0 failed ---

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

2026-09-07 total duration: 5m8.788109544s load duration: 1.866442ms prompt eval count: 195 token(s) prompt eval cached: 191 token(s) prompt eval duration: 305.122ms prompt eval rate: 13.11 tokens/s eval count: 1978 token(s) eval duration: 5m8.338837s eval rate: 6.42 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルをオールマンで生成 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 引数値のチェック(エラー判定有) 文字列長に応じたメモリの確保(エラー処理有) 文字列用メモリの初期化 インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 生成文字列の標準出力への出力 文字列用メモリの解放 ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 文字列生成関数を6種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 (3) 整数1 < 整数2 ただし、整数1が負数 (4) 整数1 > 整数2 (5) 整数1 == 整数2 ただし、整数1、整数2が共に0 (6) 整数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_code.c sample_test.c /bin/ld: /tmp/cc0eLYqW.o: in function `main': sample_test.c:(.text+0x2be): multiple definition of `main'; /tmp/cckm0VfH.o:sample_code.c:(.text+0xfe): 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 Error: invalid range $ ./sample_test [PASS] basic_range_1_to_5 [PASS] single_value_7_to_7 [PASS] negative_range_-2_to_2 [PASS] invalid_range_5_to_1 [PASS] zero_range_0_to_0 [PASS] large_range_100_to_105 6/6 tests passed

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

2026-09-07 total duration: 8m14.807417895s load duration: 1m27.095293797s prompt eval count: 195 token(s) prompt eval duration: 6.943768s prompt eval rate: 28.08 tokens/s eval count: 2502 token(s) eval duration: 6m40.658509s eval rate: 6.24 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルをオールマンで生成 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 引数値のチェック(エラー判定有) 文字列長に応じたメモリの確保(エラー処理有) 文字列用メモリの初期化 インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 生成文字列の標準出力への出力 文字列用メモリの解放 テスト時にmain()除外のマクロを配置 ・テストコードを別途生成 sample_code.cをインクルード main()を伴うテストコード 文字列生成関数を6種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 (3) 整数1 < 整数2 ただし、整数1が負数 (4) 整数1 > 整数2 (5) 整数1 == 整数2 ただし、整数1、整数2が共に0 (6) 整数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_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 Error: invalid range $ ./sample_test [PASS] basic_range_1_to_5 [PASS] single_value_7_to_7 [PASS] negative_range_minus2_to_2 [PASS] invalid_range_returns_null [PASS] zero_range_0_to_0 [PASS] large_range_10_to_15 6/6 tests passed