| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 컴퓨터공학
- 딥러닝
- 데이터구조
- 머신러닝
- 소프트웨어
- 인공지능
- 빅데이터
- 컴퓨터비전
- 데이터분석
- I'm Sorry
- Yes
- 네트워크보안
- 보안
- 사이버보안
- 컴퓨터과학
- 클라우드컴퓨팅
- 파이썬
- 데이터베이스
- springboot
- 버전관리
- 자료구조
- 웹개발
- 데이터과학
- 자바스크립트
- 소프트웨어공학
- 디자인패턴
- 네트워크
- 프로그래밍언어
- 프로그래밍
- 알고리즘
- Today
- Total
목록전체 글 (1964)
스택큐힙리스트
단순하게는, %rcx를 절반으로 나눌 수 있고, %xmm0에서 double로 변환한 후에 %xmm0에 자기 자신을 더하여 원래의 값을 얻을 수 있습니다 (물론, 64비트 정수에서 64비트 부동 소수점으로 전환하면 일부 하위 정밀도를 손실하게 됩니다).하지만 코드가 하는 일은 아닙니다: %rcx 의 최하위 비트를 저장한 다음 결과에 이를 다시 or 연산합니다. 왜 그렇게 하는 건가요?? 그리고 이 최하위 비트들은 어쨌든 잃어버리게 될 텐데 왜 귀찮게 이렇게 하는 걸까요 (혹시 제가 잘못 이해한 건가요)? (최적화에 관계없이 동일한 알고리즘이 사용되는 것 같습니다; 여기서는 보다 쉽게 보기 위해 -O3 옵션을 사용했습니다.)답변 1이것은 특정 인스턴스에서 round-to-odd를 구현하는 정확한 방법입니다...
_strlen64_sse2: rdi와 rdi를 비교하여 테스트합니다. 0으로 jz (점프하지 않음)합니다. ; ... 동일한 테스트를 실행하는데 이제는 0.59초까지 걸립니다. 그러나 이 체크 이후의 코드를 정렬하면: _strlen64_sse2: rdi와 rdi를 비교하여 테스트합니다. 0으로 jz (점프하지 않음)합니다. 8만큼 정렬합니다. ; ... 원래의 공연은 돌아왔습니다. 4는 아무런 변화도 없으므로 정렬을 위해 8을 사용했습니다. 이것에 대해 설명하고 코드 섹션을 정렬할 때와 정렬하지 않아야 할 때에 대한 조언을 주실 수 있을까요? 수정 2 물론, 모든 분기 대상을 정렬하는 것만큼 간단하지는 않습니다. 그렇게 하면 보통 성능이 나빠질 수 있습니다. 위와 같은 특정한 경우를 제외하고는요.답변 1..
SSE 내장 함수를 사용하여 float 벡터의 합 요소를 어떻게 얻을 수 있나요? 간단한 직렬 코드: void(float *input, float &result, unsigned int NumElems) { result = 0; for(auto i=0; i
나는 cpu가 RAM과 명령어 캐시를 비교하는 것 같다고 추측한다 (만약 c가 실제로 RAM에 있다면). 특히, 매우 큰 점프를 할 때 (위의 mmapped 메모리에 대한 호출과 같이) 명령 포인터가 캐시를 무효화하고 일치하지 않을 때 (전부?) 그것에 대해 더 정확한 정보를 얻기를 희망한다. 특히 이 동작이 예측 가능한 것으로 간주되고 (하드웨어 및 운영 체제의 차이를 제외하고) 의존할 수 있는지 알고 싶다.(아마도 인텔 매뉴얼을 참조해야할 것 같은데, 그게 수천 페이지로 이루어져 있어서 그 안에서 길을 잃는 경향이 있어...)답변 1파워PC는 캐시를 비활성화한 경우에도 컨텍스트 동기화 명령의 발행이 필요하다는 사실을 주목하는 것은 흥미롭습니다. 로드/스토어 버퍼와 같은 깊은 데이터 처리 유닛의 플러시..