윈디하나의 누리사랑방. 이런 저런 얘기

글쓴시간
분류 기술,IT
윈도 11 24H2 와 POPCNT, SSE4.2

사용자 삽입 이미지

금번 윈도 11 24H2 업데이트부터, 커널에서 POPCNT, SSE4.2 명령셋을 필수로 사용하도록 변경되었습니다. 따라서 이 명령셋들을 지원하지 않는 Core 2 CPU는 윈도 11 23H2 운영체제까지만 사용 가능합니다. 아직 Core 2 CPU를 사용한 PC를 가지고 있는 저로써는 좀 아쉽습니다만, POPCNT 명령셋이 필요한건 맞고, Core2 가 2006년에 출시되었을 정도로 오래된 CPU 이니 어쩔 수 없다고는 생각합니다.

※ POPCNT

2020년에 승인된 C++20 이라는 C++ 규격에 popcount() 라는 함수가 추가되었고, 제 기억엔 이때부터 곳곳에 POPCNT 명령셋을 필요로하는 경우가 많아졌습니다. 윈도11 뿐만 아니라 리눅스 배포판에서도 마찬가지입니다.

POPCNT 는 비트가 세팅된 개수를 세는 명령입니다. 원래는 루프 돌리면서 복잡하게 계산해야 했는데 CPU의 명령셋 하나로 계산할 수 있게되고 그만큼 매우 빠르게 계산됩니다. 이 명령은 해시 함수에서는 널리 사용되는 기능인데 이제 추가되었네요.

popcnt(0x0) = 0
popcnt(0xff) = 8
popcnt(0xffff) = 16
popcnt(0xffffffff) = 32

와 같은 결과를 얻습니다.

※ SSE 4.2

SSE4.2 의 주된 변경점은 CRC32C 와 STTNI 가 추가되었습니다.

- CRC32C 는 CRC32 의 변형으로, iSCSI 에서 체크섬으로 사용합니다. RFC 3720 에 정의되어있습니다. 쉽게 말하면 하드디스크에서 배드섹터 같은거 검출할 때 사용하는 명령으로 매우 자주 사용됩니다.

- STTNI 는 String and Text New Instructions 으로 불리는 문자열 비교 연산 명령셋입니다. 역시 매우 자주 사용됩니다.
글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - 미녀 #9 Part 2

그 두번째. Part 1과 유사하지만, 구도를 조금 다르게 잡았다.

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지
글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - 미녀 #9 Part 1

미소녀 만화 그림체의 LoRA 를 받아 생성한 그림이다. 미소녀 만화 그림체로 그려주는 LoRA 는 많지만 내가 사용하는 모델에 잘 어울리는 LoRA 는 찾기 힘들다. 사진에 사용한 LoRA 도, LoRA 소개 이미지는 아래 그림과 딴판이었다. 즉 이런 LoRA 를 발견한건 상당한 운이 있었던 셈.

LoRA 가 학습을 강하게 했는지, 다른 형태의 이미지를 생성할 수는 있지만, 프롬프트를 많이 바꾸지 않으면 유사한 이미지들이 많이 나온다. 이것저것 해보다가 아래와 같은 형식이 가장 예쁘게 나왔다. 뭔가 귀족풍의 아가씨를 만드려고 하는 내 의지와 맞았다.

이 글은 Part 3까지 업로드 예정이다.

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지


사용자 삽입 이미지
글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion - Ribbon BowTie

리본 형태의 나비넥타이. 의외로 자주 보는 넥타이 형식인데, 이 형태가 SD 에서는 나오질 않았다. 나왔다 해도 조금 이상하게 나오기도 했다.

그래서 LoRA 를 만들어서 구현해 봤다. 인터넷에서 유사한 이미지들을 찾고 그림판에 붙이고 자르고 그려 넣어서 그럴듯한 이미지를 만들고, 이 이미지로 LoRA 를 만든다. LoRA 를 사용해 다시 이미지를 만들고 다시 학습시켜서 LoRA 만들고. 이걸 반복하다 보면 만족할만한 품질의 LoRA 가 나온다.

대략 모양이 나오게 만들었으면 이후 디테일을 높이고 이것저것 장식을 만들면 완성. 말이 쉽지 약 52시간 정도 걸렸다. 일주일 정도 걸린 셈. 그렇게 해서 나온게 아래 이미지들이다.

사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


만들고 나니 뿌듯하다.
글쓴시간
분류 기술,IT
메모리 랭크, 뱅크 2Rx8, 1Rx16, 2Rx4

사용자 삽입 이미지


메모리에 나와있는 메모리 스펙중 하나다.

※ "2Rx8" 이면 아래와 같은 의미다.

- 2R 은 2개의 Rank 으로 구성 (듀얼랭크라고 읽는다)
- x8 은 8개의 영역을 하나의 뱅크로 구성

※ 보통 소비자용 메모리에서 2R 이면 양면램을 의미한다. 앞/뒤로 메모리가 달려있고 각각 1개의 랭크로 구성되어있기 때문이다. (양면 메모리와 2R 는 다른 의미다. 양면 메모리도 1R으로 만들 수 있다)

※ x16은 16개의 메모리 영역이 한개의 뱅크로 구성되어있다는 의미로, x8 메모리보다 더 느리다. 같은 메모리 모듈인데 뱅크 구성 단위가 낮으면 그만큼 메모리에 접근할 수 있는 공간이 늘어나기 때문이다. 이게 고속 메모리 연산이 필요한 작업, 예를 들어 게임에서는 성능차이가 많이 난다. x16이라고 소비자가격이 낮은건 아니기 때문에 반드시 x8 을 구매하자. 서버급 메모리에서는 x4 도 사용하곤 한다.

※ 그외에도 x8 메모리와 x16 메모리를 혼용하는것도 권장하지 않는다. 일부 구형 마더보드에서는 아예 인식 자체가 안되기도 한다. 따라서 성능 좋고 호환성 좋은 x8 메모리를 구매하는 것이 좋다.