{"id":580,"date":"2024-09-10T22:17:02","date_gmt":"2024-09-10T21:17:02","guid":{"rendered":"https:\/\/www.alanknipmeyer.phd\/?p=580"},"modified":"2024-09-10T22:22:59","modified_gmt":"2024-09-10T21:22:59","slug":"a-bit-of-a-play-time","status":"publish","type":"post","link":"https:\/\/www.alanknipmeyer.phd\/index.php\/2024\/09\/10\/a-bit-of-a-play-time\/","title":{"rendered":"A bit of a &#8216;play&#8217; time"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<p>So having physically built my GPU server, I wanted to test it out. One of the things I&#8217;ve not been able to do before is graphical machine learning, such as converting text to images, with the additional resources, I&#8217;d give it a go.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"Install Stable Diffusion on Ubuntu with GPU Support - Command Line Tutorial! \ud83d\udcbb\ud83d\ude80\" width=\"800\" height=\"450\" src=\"https:\/\/www.youtube.com\/embed\/wywzYihJe1k?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">The most excellent stable diffusion tutorial by Daniel.<\/figcaption><\/figure>\n\n\n\n<p>I searched around and found an excellent tutorial by Daniel, I followed the <a href=\"https:\/\/danielpersson.dev\/2024\/02\/26\/how-to-install-stable-diffusion-locally\/\">write up<\/a> and it worked first time out the box. I was soon creating amazing images on the P100.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"768\" height=\"768\" data-id=\"573\" src=\"https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/00293.png\" alt=\"\" class=\"wp-image-573\" srcset=\"https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/00293.png 768w, https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/00293-300x300.png 300w, https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/00293-150x150.png 150w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"768\" height=\"768\" data-id=\"577\" src=\"https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/00289.png\" alt=\"\" class=\"wp-image-577\" srcset=\"https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/00289.png 768w, https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/00289-300x300.png 300w, https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/00289-150x150.png 150w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"768\" height=\"768\" data-id=\"570\" src=\"https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/00296.png\" alt=\"\" class=\"wp-image-570\" srcset=\"https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/00296.png 768w, https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/00296-300x300.png 300w, https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/00296-150x150.png 150w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/figure>\n<\/figure>\n\n\n\n<p>&#8216;professional photograph of corgis chasing butterfly in a field of flowers&#8217; <\/p>\n\n\n\n<p>I am use to using &#8216;nvtop&#8217; for real-time monitoring which does an excellent job of capturing the load\/temp of the GPU&#8217;s.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"610\" src=\"https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/image-1024x610.png\" alt=\"\" class=\"wp-image-581\" style=\"width:840px;height:auto\" srcset=\"https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/image-1024x610.png 1024w, https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/image-300x179.png 300w, https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/image-768x458.png 768w, https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/image.png 1144w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>But as a fan of graphics, I wanted something a little more. Now whilst I&#8217;m a big fan of <a href=\"https:\/\/people.cs.rutgers.edu\/~terminals\/mrtg\/mrtg-2.5.4c\/readme.html\">MRTG<\/a> and in the past have written my scripts to scrape the values from nvidia-smi, tools such as Grafana &amp; Prometheus provide excellent dashboards.<\/p>\n\n\n\n<p>I started with an excellent tutorial by Hitesh, <a href=\"https:\/\/www.atlantic.net\/dedicated-server-hosting\/how-to-install-grafana-and-prometheus-on-ubuntu-22-04\/\">here<\/a>, which got me the basic Grafana and Prometheus setup. With that, it was a simple exercise to follow the tutorial <a href=\"https:\/\/medium.com\/@smda1215\/nvidia-gpu-metrics-performance-monitor-in-grafana-prometheus-3a4bc7198cf9\">here<\/a> by Didar and to start pulling data from the nvidia GPU&#8217;s.<\/p>\n\n\n\n<p>I set about rendering some new pictures via stable diffusion and was really impressed with the monitoring dashboard for my GPUs.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"733\" src=\"https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/Grafana_GPU_Dashboard-1024x733.jpg\" alt=\"\" class=\"wp-image-579\" srcset=\"https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/Grafana_GPU_Dashboard-1024x733.jpg 1024w, https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/Grafana_GPU_Dashboard-300x215.jpg 300w, https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/Grafana_GPU_Dashboard-768x549.jpg 768w, https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/Grafana_GPU_Dashboard-1536x1099.jpg 1536w, https:\/\/www.alanknipmeyer.phd\/wp-content\/uploads\/2024\/09\/Grafana_GPU_Dashboard-2048x1465.jpg 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">GPU&#8217;s stats &#8211; notice the temp where the inbuilt scripts kick in and set the fans on max to stop throttling<br><br>I&#8217;m now going to add more dashboards\/alerting, then start work on my &#8216;slurm&#8217; gpu cluster so i can distribute jobs over the various GPU&#8217;s I have available to me.<br><br>I dare say that I will soon be back to doing more academic work once on cryptanalysis in the coming weeks, but I have found this a very pleasant distraction in the mean time \ud83d\ude42<br> <\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>So having physically built my GPU server, I wanted to test it out. One of the things I&#8217;ve not been able to do before is graphical machine learning, such as converting text to images, with the additional resources, I&#8217;d give it a go. I searched around and found an excellent tutorial by Daniel, I followed [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-580","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.alanknipmeyer.phd\/index.php\/wp-json\/wp\/v2\/posts\/580","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.alanknipmeyer.phd\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.alanknipmeyer.phd\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.alanknipmeyer.phd\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.alanknipmeyer.phd\/index.php\/wp-json\/wp\/v2\/comments?post=580"}],"version-history":[{"count":2,"href":"https:\/\/www.alanknipmeyer.phd\/index.php\/wp-json\/wp\/v2\/posts\/580\/revisions"}],"predecessor-version":[{"id":583,"href":"https:\/\/www.alanknipmeyer.phd\/index.php\/wp-json\/wp\/v2\/posts\/580\/revisions\/583"}],"wp:attachment":[{"href":"https:\/\/www.alanknipmeyer.phd\/index.php\/wp-json\/wp\/v2\/media?parent=580"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.alanknipmeyer.phd\/index.php\/wp-json\/wp\/v2\/categories?post=580"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.alanknipmeyer.phd\/index.php\/wp-json\/wp\/v2\/tags?post=580"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}