<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://subvention.zooid.org/index.php?action=history&amp;feed=atom&amp;title=Lumi_-_Vie</id>
	<title>Lumi - Vie - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://subvention.zooid.org/index.php?action=history&amp;feed=atom&amp;title=Lumi_-_Vie"/>
	<link rel="alternate" type="text/html" href="https://subvention.zooid.org/index.php?title=Lumi_-_Vie&amp;action=history"/>
	<updated>2026-10-24T02:35:17Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.11</generator>
	<entry>
		<id>https://subvention.zooid.org/index.php?title=Lumi_-_Vie&amp;diff=5551&amp;oldid=prev</id>
		<title>DavidM: Created page with &quot;{{Subventions |import ref=Subventions 4204 |Code postal=H7V4B1 |Rue=3075, boulevard Lévesque Ouest |Ville=Laval |Ministère=MSSS }}&quot;</title>
		<link rel="alternate" type="text/html" href="https://subvention.zooid.org/index.php?title=Lumi_-_Vie&amp;diff=5551&amp;oldid=prev"/>
		<updated>2011-01-29T13:13:21Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{Subventions |import ref=Subventions 4204 |Code postal=H7V4B1 |Rue=3075, boulevard Lévesque Ouest |Ville=Laval |Ministère=MSSS }}&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;I briefly had a Macbook M3 Max with 64GB. It was pretty good at running local LLMs, but couldn&amp;#039;t stand the ergonomics and not being able to run Linux, so returned it.&lt;br /&gt;
&lt;br /&gt;
I picked up a Thinkpad P16s with an AMD 7840u to give Linux hardware a chance to catch up with Apple silicon. It&amp;#039;s an amazing computer for the price, and can run LLMs. Here&amp;#039;s how I set up llama.cpp to use ROCm.&lt;br /&gt;
&lt;br /&gt;
Install ROCm, set an env variable for the 780m: &amp;lt;code&amp;gt;export HSA_OVERRIDE_GFX_VERSION=11.0.0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
clone llama.cpp and compile it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make -j16 LLAMA_HIPBLAS=1 LLAMA_HIP_UMA=1 AMDGPU_TARGETS=gfx1030 DLLAMA_HIP_UMA=&lt;br /&gt;
ON&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
run it like this:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;./main -m /home/vid/jan/models/mistral-ins-7b-q4/mistral-7b-instruct-v0.2.Q4_K_M&lt;br /&gt;
.gguf -p &amp;quot;example code for a lit Web Component that reverses a string&amp;quot; -n 50 -e &lt;br /&gt;
-ngl 33  -n -1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ggml_cuda_init: found 1 ROCm devices:&lt;br /&gt;
   Device 0: AMD Radeon Graphics, compute capability 11.0, VMM: no&lt;br /&gt;
 llm_load_tensors: ggml ctx size =    0.22 MiB&lt;br /&gt;
 llm_load_tensors: offloading 32 repeating layers to GPU&lt;br /&gt;
 llm_load_tensors: offloading non-repeating layers to GPU&lt;br /&gt;
 llm_load_tensors: offloaded 33/33 layers to GPU&lt;br /&gt;
 llm_load_tensors:      ROCm0 buffer size =  4095.05 MiB&lt;br /&gt;
 llm_load_tensors:        CPU buffer size =    70.31 MiB&lt;br /&gt;
 ..............................................................................................&lt;br /&gt;
 llama_new_context_with_model: n_ctx      = 512&lt;br /&gt;
 llama_new_context_with_model: n_batch    = 512&lt;br /&gt;
 llama_new_context_with_model: n_ubatch   = 512&lt;br /&gt;
 llama_new_context_with_model: freq_base  = 1000000.0&lt;br /&gt;
 llama_new_context_with_model: freq_scale = 1&lt;br /&gt;
 llama_kv_cache_init:      ROCm0 KV buffer size =    64.00 MiB&lt;br /&gt;
 llama_new_context_with_model: KV self size  =   64.00 MiB, K (f16):   32.00 MiB, V (f16):   32.00 MiB&lt;br /&gt;
 llama_new_context_with_model:  ROCm_Host  output buffer size =     0.12 MiB&lt;br /&gt;
 llama_new_context_with_model:      ROCm0 compute buffer size =    81.00 MiB&lt;br /&gt;
 llama_new_context_with_model:  ROCm_Host compute buffer size =     9.01 MiB&lt;br /&gt;
 llama_new_context_with_model: graph nodes  = 1030&lt;br /&gt;
 llama_new_context_with_model: graph splits = 2&lt;br /&gt;
 &lt;br /&gt;
 system_info: n_threads = 8 / 16 | AVX = 1 | AVX_VNNI = 0 | AVX2 = 1 | AVX512 = 1 | AVX512_VBMI = 1 | AVX512_VNNI = 1 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 1 | SSSE3 = 1 | VSX = 0 | MATMUL_INT8 = 0 |&lt;br /&gt;
 sampling:&lt;br /&gt;
         repeat_last_n = 64, repeat_penalty = 1.000, frequency_penalty = 0.000, presence_penalty = 0.000&lt;br /&gt;
         top_k = 40, tfs_z = 1.000, top_p = 0.950, min_p = 0.050, typical_p = 1.000, temp = 0.800&lt;br /&gt;
         mirostat = 0, mirostat_lr = 0.100, mirostat_ent = 5.000&lt;br /&gt;
 sampling order:&lt;br /&gt;
 CFG -&amp;gt; Penalties -&amp;gt; top_k -&amp;gt; tfs_z -&amp;gt; typical_p -&amp;gt; top_p -&amp;gt; min_p -&amp;gt; temperature&lt;br /&gt;
 generate: n_ctx = 512, n_batch = 2048, n_predict = -1, n_keep = 1&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  simple example code for a lit Web Component that reverses a string&lt;br /&gt;
 &lt;br /&gt;
 ```javascript&lt;br /&gt;
 import { LitElement, html } from &amp;#039;lit&amp;#039;;&lt;br /&gt;
 import { customElement, property } from &amp;#039;lit/decorators.js&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
 @customElement(&amp;#039;reverse-string&amp;#039;)&lt;br /&gt;
 class ReverseString extends LitElement {&lt;br /&gt;
 &lt;br /&gt;
   static styles = css`&lt;br /&gt;
     :host {&lt;br /&gt;
       display: block;&lt;br /&gt;
     }&lt;br /&gt;
   `;&lt;br /&gt;
 &lt;br /&gt;
   @property({ type: String }) input = &amp;#039;&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
   render() {&lt;br /&gt;
     return html`&lt;br /&gt;
       &amp;lt;input type=&amp;quot;text&amp;quot; value=${this.input} @input=${this._handleInput} /&amp;gt;&lt;br /&gt;
       &amp;lt;button @click=${this._reverse}&amp;gt;Reverse&amp;lt;/button&amp;gt;&lt;br /&gt;
       &amp;lt; p&amp;gt;${this._reversed}&amp;lt; /p&amp;gt;&lt;br /&gt;
     `;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   _handleInput(event) {&lt;br /&gt;
     this.input = event.target.value;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   _reverse() {&lt;br /&gt;
     this._reversed = this.input.split(&amp;#039;&amp;#039;).reverse().join(&amp;#039;&amp;#039;);&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   @property private _reversed = &amp;#039;&amp;#039;;&lt;br /&gt;
 }&lt;br /&gt;
 ```&lt;br /&gt;
 &lt;br /&gt;
 ```css&lt;br /&gt;
 :host {&lt;br /&gt;
   display: block;&lt;br /&gt;
 }&lt;br /&gt;
 ```&lt;br /&gt;
 &lt;br /&gt;
 This is a simple example of a Lit Web Component that reverses a string. The component has an input field for the user to enter a string, and a button to reverse the string when clicked. The reversed string is displayed below the button.&lt;br /&gt;
 &lt;br /&gt;
 The component uses the Lit library to define the custom element, and uses the `@customElement` decorator to define the element&amp;#039;s name as &amp;#039;reverse-string&amp;#039;. The `@property` decorator is used to define the input property, and the `static styles` property is used to define the component&amp;#039;s styles.&lt;br /&gt;
 &lt;br /&gt;
 In the `render` method, the input field and button are created using template literals, and the reversed string is displayed using a reactive property `_reversed`.&lt;br /&gt;
 &lt;br /&gt;
 The input field&amp;#039;s value is updated in the `_handleInput` method when the user types in the field, and the string is reversed in the `_reverse` method when the button is clicked. The reversed string is then assigned to the `_reversed` property, which updates the displayed string. [end of text]&lt;br /&gt;
  &lt;br /&gt;
 llama_print_timings:        load time =    2488.76 ms&lt;br /&gt;
 llama_print_timings:      sample time =      24.92 ms /   485 runs   (    0.05 ms per token, 19462.28 tokens per second)&lt;br /&gt;
 llama_print_timings: prompt eval time =     576.45 ms /    14 tokens (   41.18 ms per token,    24.29 tokens per second)&lt;br /&gt;
 llama_print_timings:        eval time =   38985.11 ms /   484 runs   (   80.55 ms per token,    12.41 tokens per second)&lt;br /&gt;
 llama_print_timings:       total time =   39890.17 ms /   498 tokens&lt;br /&gt;
 Log end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s definitely not going to win any speed prizes even though is a smaller model, but it could be ok for non time sensitive results, or where using a tiny, faster model is useful.&lt;br /&gt;
&lt;br /&gt;
{{Blikied|April 13, 2024}}&lt;/div&gt;</summary>
		<author><name>DavidM</name></author>
	</entry>
</feed>